Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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_Uinavigationcontroller_Storyboard_Segue - Fatal编程技术网

Ios 能否从多个导航控制器中切换到情节提要视图控制器?

Ios 能否从多个导航控制器中切换到情节提要视图控制器?,ios,uinavigationcontroller,storyboard,segue,Ios,Uinavigationcontroller,Storyboard,Segue,背景:应用程序的UI是一个选项卡栏控制器,每个选项卡栏都有自己的导航控制器。多个视图控制器是通用的,用户可以无规则地访问它们,而不必使用哪个选项卡。最初,我只是将故事板上所有的片段连接到故事板上的一个视图控制器,用于这些常见视图。但我意识到用户可以进入公共视图,选择不同的选项卡,然后在不同的导航控制器上返回公共视图…我不知道这是什么。视图控制器的这两个不同的实例是什么?如果没有,当弹出时,哪个导航控制器会“重新”打开 Xcode崩溃变得越来越频繁,直到它一打开情节提要就开始崩溃。与此同时,我有几

背景:应用程序的UI是一个选项卡栏控制器,每个选项卡栏都有自己的导航控制器。多个视图控制器是通用的,用户可以无规则地访问它们,而不必使用哪个选项卡。最初,我只是将故事板上所有的片段连接到故事板上的一个视图控制器,用于这些常见视图。但我意识到用户可以进入公共视图,选择不同的选项卡,然后在不同的导航控制器上返回公共视图…我不知道这是什么。视图控制器的这两个不同的实例是什么?如果没有,当弹出时,哪个导航控制器会“重新”打开


Xcode崩溃变得越来越频繁,直到它一打开情节提要就开始崩溃。与此同时,我有几十个“模棱两可的视图”类型的警告,我一直推迟解决。因此,我调整了约束条件,直到所有警告都被消除,再加上我消除了导航控制器之间的任何分段,我只得到了公共视图的多个副本。Xcode从那时起就一直像岩石一样稳定。但是现在我的故事板中有一组视图控制器,每个都有三个副本,而且更改/维护它们很麻烦

故事板功能非常强大,但它也很方便,可以说是为简单的界面和更多的新手程序员设计的。因此,在创建更复杂(或者更贴切地说,更不标准)的接口时,您希望更多地进入代码。这可能是故事板中命名视图控制器(从代码实例化)或独立XIB文件的组合。

故事板功能非常强大,但也很方便,可以说是为简单界面和更多新手程序员设计的。因此,在创建更复杂(或者更贴切地说,更不标准)的接口时,您希望更多地进入代码。这可以是故事板中的命名视图控制器(从代码实例化)或独立的XIB文件的组合。

您可以做的只是复制您希望在故事板中有多个分段的viewcontroller。在viewcontroller的viewDidLoad中,您可以找到调用您的选项卡,并可能调整其功能:

UITabBarController *tabBarController = (UITabBarController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
ALog( @"Selected tab: %d", tabBarController.selectedIndex );
这只是询问应用程序的UITabBarController,它是所选的选项卡


因此,这不是一个viewcontroller的多个分段,但出于实际目的,它可能已经足够接近了。

您可以做的只是复制您希望在故事板中有多个分段的viewcontroller。在viewcontroller的viewDidLoad中,您可以找到调用您的选项卡,并可能调整其功能:

UITabBarController *tabBarController = (UITabBarController *)[[UIApplication sharedApplication] delegate].window.rootViewController;
ALog( @"Selected tab: %d", tabBarController.selectedIndex );
这只是询问应用程序的UITabBarController,它是所选的选项卡


因此,这对于一个viewcontroller来说并不是一个多段,但对于实际用途来说,它可能已经足够接近了。

您不认为在代码中管理其中一些内容可能是一个好主意吗?故事板并不是一个灵丹妙药,特别是对于定制/非标准用户界面。你可能是对的,我对IOS非常陌生,我一直依赖故事板作为支撑。但在我从未考虑过的代码中启动一些“公共”视图控制器。因此,我会为一些视图控制器提供独立的nib文件,而其他视图控制器则在情节提要中设计?您可以在情节提要中使用视图控制器,并根据其标识符对其进行实例化,然后推送/呈现它们。谢谢!我已经开始在适当的时候使用编码来实例化VCs。它减少了我的工作量,清理了我的故事板。很好的推送@Wain。您不认为在代码中管理其中一些内容可能是个好主意吗?故事板并不是一个灵丹妙药,特别是对于定制/非标准用户界面。你可能是对的,我对IOS非常陌生,我一直依赖故事板作为支撑。但在我从未考虑过的代码中启动一些“公共”视图控制器。因此,我会为一些视图控制器提供独立的nib文件,而其他视图控制器则在情节提要中设计?您可以在情节提要中使用视图控制器,并根据其标识符对其进行实例化,然后推送/呈现它们。谢谢!我已经开始在适当的时候使用编码来实例化VCs。它减少了我的工作量,清理了我的故事板。推得好@Wain。