Objective c 在基于拆分的应用程序中手动更改视图
我试图让我的应用程序在用户单击“提交”按钮后切换视图 这就是我到目前为止所做的: viewA.hObjective c 在基于拆分的应用程序中手动更改视图,objective-c,uisplitviewcontroller,Objective C,Uisplitviewcontroller,我试图让我的应用程序在用户单击“提交”按钮后切换视图 这就是我到目前为止所做的: viewA.h @property (nonatomic, retain) RootViewController *root; viewA.m -(void)switchToLogView{ NSLog(@"switch to log view"); UIViewController <SubstitutableDetailViewController> *detailViewController
@property (nonatomic, retain) RootViewController *root;
viewA.m
-(void)switchToLogView{
NSLog(@"switch to log view");
UIViewController <SubstitutableDetailViewController> *detailViewController = nil;
LogDetailViewController *newDetailViewController = [[LogDetailViewController alloc] initWithNibName:@"LogDetailViewController" bundle:nil];
detailViewController = newDetailViewController;
// Update the split view controller's view controllers array.
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil];
root.splitViewController.viewControllers = viewControllers;
// Dismiss the popover if it's present.
if (root.popoverController != nil) {
[root.popoverController dismissPopoverAnimated:YES];
}
// Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created).
if (root.rootPopoverButtonItem != nil) {
[detailViewController showRootPopoverButtonItem:self.root.rootPopoverButtonItem];
}
[detailViewController release];
}
-(无效)切换到日志视图{
NSLog(@“切换到日志视图”);
UIViewController*detailViewController=nil;
LogDetailViewController*newDetailViewController=[[LogDetailViewController alloc]initWithNibName:@“LogDetailViewController”捆绑包:nil];
detailViewController=newDetailViewController;
//更新拆分视图控制器的视图控制器阵列。
NSArray*viewControllers=[[NSArray alloc]initWithObjects:self.navigationController,detailViewController,nil];
root.splitViewController.viewControllers=viewControllers;
//如果有爆米花,就把它扔掉。
if(root.popoverController!=nil){
[root.popcovercontroller dismisspoveranimated:是];
}
//配置新视图控制器的弹出按钮(在显示视图并创建其工具栏/导航栏之后)。
if(root.rootPopoverButtonim!=nil){
[detailViewController showRootPopoOverButtonim:self.root.RootPopoOverButtonim];
}
[详细视图控制器发布];
}
splitViewController
、popcovercontroller
和rootpopooverbuttoneim
都是在我的RootViewController
类中声明的(我从apple示例代码开始)
代码构建得很好,但是当我调用该方法时,什么也没有发生。我最近也不得不学习如何做到这一点。我希望在我的屏幕上有一个“关于”按钮,当用户单击该按钮时,该按钮将切换到另一个视图,然后当用户单击“完成”按钮时,该按钮将切换回我的原始视图 我觉得你把事情复杂化了。这是我必须提出的关于视图的代码
AboutViewController *aboutViewController = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil];
aboutViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:aboutViewController animated:YES]; //Show it!
显然,不要忘记在标题中导入它:#import
我带回原始视图(又称隐藏关于视图)的代码是:
[self.parentViewController dismissModalViewControllerAnimated:YES]代码>嗯,这很管用。它显示了我想要的视图,但没有给我菜单按钮(rootPopoOverbuttonItem
),这是我在应用程序中导航所需的。我只需发布一个新问题。我所做的是在Xcode中打开视图,添加一个工具栏,并在工具栏上放置一个“完成”按钮。然后,我将“完成”按钮与代码链接,以取消该视图。也许你也可以这样做?这是一个可能的解决办法,但这不是我想要的。谢谢你的回答!