Iphone 按下按钮时如何关闭UISplitViewController
在我的iPad应用程序中。我正在使用Iphone 按下按钮时如何关闭UISplitViewController,iphone,ios,objective-c,ipad,uisplitviewcontroller,Iphone,Ios,Objective C,Ipad,Uisplitviewcontroller,在我的iPad应用程序中。我正在使用UISplitViewController。在UISplitViewController的DetailViewController中有一个按钮。当按下该按钮时,它将导航到另一个视图控制器。在另一个视图控制器中,我不需要UISplitViewController。如何关闭UISplitViewController。我尝试了很多,在谷歌上搜索,但没有找到任何解决办法。这是在消磨我的时间,所以如果有人对此进行了研究,请指导我并发布示例代码 我正在使用这个代码 -(v
UISplitViewController
。在UISplitViewController
的DetailViewController
中有一个按钮。当按下该按钮时,它将导航到另一个视图控制器。在另一个视图控制器中,我不需要UISplitViewController
。如何关闭UISplitViewController
。我尝试了很多,在谷歌上搜索,但没有找到任何解决办法。这是在消磨我的时间,所以如果有人对此进行了研究,请指导我并发布示例代码
我正在使用这个代码
-(void)imgButtonpressed:(id)sender
{
MenuItemsListViewController *menuview=[[MenuItemsListViewController alloc]initWithNibName:@"MenuItemsListViewController" bundle:nil];
menuview.modelArray = imagesArray;
menuview.image = [sender tag]*2;
[self.navigationController pushViewController:menuview animated:YES];
}
苹果不想让你将分割视图控制器推入导航控制器。他们的指导方针说,如果你使用UISplitViewController,它必须在你的应用程序中始终可见(因此你不能删除它),除非用模态视图控制器覆盖它 如何以模式显示viewcontroller
MenuItemsListViewController *menuview=[[MenuItemsListViewController alloc]initWithNibName:@"MenuItemsListViewController" bundle:nil];
menuview.modalPresentationStyle = UIModalPresentationFullScreen;
[self.splitViewController presentViewController:menuview animated:YES completion:nil];
来源:苹果不希望您将拆分视图控制器推入导航控制器。他们的指导方针说,如果你使用UISplitViewController,它必须在你的应用程序中始终可见(因此你不能删除它),除非用模态视图控制器覆盖它 如何以模式显示viewcontroller
MenuItemsListViewController *menuview=[[MenuItemsListViewController alloc]initWithNibName:@"MenuItemsListViewController" bundle:nil];
menuview.modalPresentationStyle = UIModalPresentationFullScreen;
[self.splitViewController presentViewController:menuview animated:YES completion:nil];
来源:我在使用UISplitView时也遇到过同样的问题。事实上,当我终于知道如何在rootviewcontroller上推送splitview时,我仍然遇到了一个问题 所以,我相信有很多新手对这个问题感到沮丧。我在这里读了很多书,试图找出解决办法 以下是我所做的(您可以对任何其他视图执行相同的操作): 这将关闭一个splitview并推送另一个splitview:
SplitViewController *split = [[SplitViewController alloc]init];
self.leftController = [[LeftViewController alloc]init];
UINavigationController *leftNav = [[UINavigationController alloc]initWithRootViewController:leftController];
self.rightController = [[RightViewController alloc]init];
UINavigationController *rightNav = [[UINavigationController alloc]initWithRootViewController:rightController];
split.viewControllers = [NSArray arrayWithObjects:leftNav,rightNav, nil];
split.delegate = self.rightController;
YourAppDelegate *delegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.window.rootViewController = split;
第二种选择是:
NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[allViewControllers replaceObjectAtIndex:0 withObject:split];
self.navigationController.viewControllers = allViewControllers;
希望这能对其他遇到同样问题的人有所帮助
干杯 我在使用UISplitView时也遇到过同样的问题。事实上,当我终于知道如何在rootviewcontroller上推送splitview时,我仍然遇到了一个问题 所以,我相信有很多新手对这个问题感到沮丧。我在这里读了很多书,试图找出解决办法 以下是我所做的(您可以对任何其他视图执行相同的操作): 这将关闭一个splitview并推送另一个splitview:
SplitViewController *split = [[SplitViewController alloc]init];
self.leftController = [[LeftViewController alloc]init];
UINavigationController *leftNav = [[UINavigationController alloc]initWithRootViewController:leftController];
self.rightController = [[RightViewController alloc]init];
UINavigationController *rightNav = [[UINavigationController alloc]initWithRootViewController:rightController];
split.viewControllers = [NSArray arrayWithObjects:leftNav,rightNav, nil];
split.delegate = self.rightController;
YourAppDelegate *delegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.window.rootViewController = split;
第二种选择是:
NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[allViewControllers replaceObjectAtIndex:0 withObject:split];
self.navigationController.viewControllers = allViewControllers;
希望这能对其他遇到同样问题的人有所帮助
干杯