Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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 UIDABBARC控制器和UINAVIgationController 问题_Iphone_Objective C_Ipad_Uinavigationcontroller_Uitabbarcontroller - Fatal编程技术网

Iphone UIDABBARC控制器和UINAVIgationController 问题

Iphone UIDABBARC控制器和UINAVIgationController 问题,iphone,objective-c,ipad,uinavigationcontroller,uitabbarcontroller,Iphone,Objective C,Ipad,Uinavigationcontroller,Uitabbarcontroller,我有一个应用程序,有一个UITabBarController和四个不同的选项卡。其中三个选项卡是表格,您可以单击每一行,它会将您带到另一个视图 问题 我将如何在导航方面实现这一点?我应该创建一个UITabBarController,其中导航控制器作为选项卡(如图1所示),还是视图控制器作为选项卡(如图2所示),每个视图控制器都有自己的导航控制器属性 图1: 图2: 我两种都试过了,但效果都不好,而且令人困惑。我想知道哪种方法更合适,这样我可以专注于该方法,然后看看为什么它不起作用。您提出的第

我有一个应用程序,有一个UITabBarController和四个不同的选项卡。其中三个选项卡是表格,您可以单击每一行,它会将您带到另一个视图

问题 我将如何在导航方面实现这一点?我应该创建一个UITabBarController,其中导航控制器作为选项卡(如图1所示),还是视图控制器作为选项卡(如图2所示),每个视图控制器都有自己的导航控制器属性

图1:

图2:


我两种都试过了,但效果都不好,而且令人困惑。我想知道哪种方法更合适,这样我可以专注于该方法,然后看看为什么它不起作用。

您提出的第一种方法是唯一的方法。视图控制器有一个
navigationController
属性,但只有当视图控制器当前包含在父导航控制器中时,它才会返回某些内容


因此,需要明确的是:您应该有一个包含导航控制器的
UITabBarController
,每个选项卡都有一个导航控制器,您希望在其中具有导航层次结构。

您提出的第一种方法是唯一的方法。视图控制器有一个
navigationController
属性,但只有当视图控制器当前包含在父导航控制器中时,它才会返回某些内容


因此,需要明确的是:您应该有一个包含导航控制器的
UITabBarController
,每个选项卡都有一个导航控制器,您希望在其中包含导航层次结构。

因此,如果VC不包含在父导航控制器中,它将无法工作?因此,一般来说,如果我需要VC的导航控制器,那么它应该在应用程序委托中声明?如果VC不包含在父导航控制器中,
navigationController
属性将返回nil。您的VC显然仍将显示,但您将无法通过导航堆栈转换到另一个视图控制器,因为导航控制器将不存在。您当然可以在应用程序代理中创建导航控制器,但如果您使用的是interface builder,则可以在某种程度上自动化此过程。因此,如果VC不包含在父导航控制器中,它将无法工作?因此,一般来说,如果我需要VC的导航控制器,那么它应该在应用程序委托中声明?如果VC不包含在父导航控制器中,
navigationController
属性将返回nil。您的VC显然仍将显示,但您将无法通过导航堆栈转换到另一个视图控制器,因为导航控制器将不存在。您当然可以在应用程序代理中创建导航控制器,但如果您使用的是interface builder,则可以在某种程度上自动化此过程。