Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
Ios 如何在选项卡栏控制器中从一个视图控制器切换到另一个视图控制器并保留选项卡栏?_Ios_Xcode_Uistoryboard - Fatal编程技术网

Ios 如何在选项卡栏控制器中从一个视图控制器切换到另一个视图控制器并保留选项卡栏?

Ios 如何在选项卡栏控制器中从一个视图控制器切换到另一个视图控制器并保留选项卡栏?,ios,xcode,uistoryboard,Ios,Xcode,Uistoryboard,我有一个应用程序,其中几个视图控制器由一个选项卡栏控制器控制。我想(单击按钮)从其中一个视图控制器切换到另一个视图控制器,并将选项卡栏保留在“切换到视图”对话框的底部 我用过 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([segue.identifier isEqualToString:@"newView"]){ UIViewController *controller

我有一个应用程序,其中几个视图控制器由一个选项卡栏控制器控制。我想(单击按钮)从其中一个视图控制器切换到另一个视图控制器,并将选项卡栏保留在“切换到视图”对话框的底部

我用过

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if ([segue.identifier isEqualToString:@"newView"]){
        UIViewController *controller =segue.destinationViewController;
        controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
        [self presentModalViewController:controller animated:YES];
    }
 }
除了segued to视图中缺少选项卡栏外,这一切正常(在情节提要中为其显示占位符,但在应用程序运行时不会显示) 我也试过更换

[self presentModalViewController:controller animated:YES];

但这也不行

调试表明,对于segued to view控制器,tabBarController属性设置为nil


是否仍要保留segued to view controller中的选项卡栏?

根据您的解释,我认为您不需要模态控制器。模态用于覆盖,使选项卡栏无用。从你的故事板中,选择你的segue并选择push,而不是modal

推送vs模式(注意选项卡栏):


我使用的是推送非模态。该选项卡栏显示在情节提要中,但在运行应用程序以启动代码使用序列时实际不会出现
[self-performsguewithidentifier:@“theSegueIdentifier”发送者:selfor或someObject]
,这是
UIViewController
的一种方法。此行
controller.modaltransationstyle=uimodaltransationstylefliphorizontal;[self-presentModalViewController:控制器已设置动画:是]用于模式转换,而不是推送。删除这一行。也是从Apple docs for presentModalViewController:动画。。。“在iPhone和iPod touch设备上,modalViewController的视图总是全屏显示。在iPad上,演示取决于modalPresentationStyle属性中的值。我按照您的建议开始编写代码,直到插入额外的行,才能够让segue正常工作。我现在明白了推式分段只能在导航控制器中工作(并且可以让它工作)。我原以为导航控制器会有问题,但我找到了“栏可见性复选框”,并使用[self.navigationController popViewControllerAnimated:NO];取消该视图;。谢谢你的帮助,特别是我读过但忘了的医生的话。
[self presentViewController:controller animated:YES completion:nil];