Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在基于拆分的应用程序中手动更改视图_Objective C_Uisplitviewcontroller - Fatal编程技术网

Objective c 在基于拆分的应用程序中手动更改视图

Objective 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

我试图让我的应用程序在用户单击“提交”按钮后切换视图

这就是我到目前为止所做的:

viewA.h

@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中打开视图,添加一个工具栏,并在工具栏上放置一个“完成”按钮。然后,我将“完成”按钮与代码链接,以取消该视图。也许你也可以这样做?这是一个可能的解决办法,但这不是我想要的。谢谢你的回答!