Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.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
Iphone 按下按钮时如何关闭UISplitViewController_Iphone_Ios_Objective C_Ipad_Uisplitviewcontroller - Fatal编程技术网

Iphone 按下按钮时如何关闭UISplitViewController

Iphone 按下按钮时如何关闭UISplitViewController,iphone,ios,objective-c,ipad,uisplitviewcontroller,Iphone,Ios,Objective C,Ipad,Uisplitviewcontroller,在我的iPad应用程序中。我正在使用UISplitViewController。在UISplitViewController的DetailViewController中有一个按钮。当按下该按钮时,它将导航到另一个视图控制器。在另一个视图控制器中,我不需要UISplitViewController。如何关闭UISplitViewController。我尝试了很多,在谷歌上搜索,但没有找到任何解决办法。这是在消磨我的时间,所以如果有人对此进行了研究,请指导我并发布示例代码 我正在使用这个代码 -(v

在我的iPad应用程序中。我正在使用
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;
希望这能对其他遇到同样问题的人有所帮助

干杯