Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Xcode 添加使用IB构建的UINavigationController_Xcode_Ios_Interface Builder_Uinavigationcontroller - Fatal编程技术网

Xcode 添加使用IB构建的UINavigationController

Xcode 添加使用IB构建的UINavigationController,xcode,ios,interface-builder,uinavigationcontroller,Xcode,Ios,Interface Builder,Uinavigationcontroller,构建iPhone应用程序。代理加载一个SplashScreenView,该视图位于那里,直到用户点击屏幕。当用户点击完屏幕后,我释放该视图,并希望加载自定义导航控制器。我不知道如何加载我在IB中设计的导航控制器…它当前正在加载UINavigationController的一个空白实例 我正在从我的代表处运行此命令: mnc = [[MyNavigationController alloc] initWithNibName:@"MyNavigation" bundle:nil]; [self.wi

构建iPhone应用程序。代理加载一个SplashScreenView,该视图位于那里,直到用户点击屏幕。当用户点击完屏幕后,我释放该视图,并希望加载自定义导航控制器。我不知道如何加载我在IB中设计的导航控制器…它当前正在加载UINavigationController的一个空白实例

我正在从我的代表处运行此命令:

mnc = [[MyNavigationController alloc] initWithNibName:@"MyNavigation" bundle:nil];
[self.window addSubview:mnc.view];
MyNavigation是我创建的一个XIB,其中只添加了文件的所有者/第一响应者/导航控制器。我将文件的所有者类设置为MyNavigationController,但我不确定如何告诉它我希望“MyNavigationController”使用的视图是我设计的视图。当我尝试将IB中文件所有者的“视图”出口拖动到我设计的导航控制器时,它似乎不喜欢它


我只是不知道如何把这些点连接起来。非常感谢您的帮助。

您的导航控制器的根控制器是什么?您看到的“空白”可能是您的导航控制器加载时没有可供导航的控制器

更新

你不需要“两个控制器”本身。只是导航控制器是控制您提供的其他控制器堆栈的控制器。首先使用根视图控制器(使用您提到的
initWithRootViewController
方法)初始化导航控制器,然后可以将(
pushViewController:animated:
)或弹出(
popViewController:animated:
)其他控制器推到导航控制器堆栈上或从中弹出


Apple开发者文档在《视图控制器编程指南》中提供了大量关于不同类型视图控制器如何交互的信息。

我确信这就是我所看到的。我知道我在这里有一个基本的误解。为什么我需要两个控制器?根视图控制器的用途是什么?我看到了initWithRootViewController的方法,但我只是猜测用什么来实例化它。我理解将视图推送到导航控制器上的概念,当我做一个基于导航的应用程序时,导航控制器在MainWindow.xib中,我可以让它工作,但我想在这里得到更深的理解。当我去初始化我的导航控制器时,我会这样做:gnc=[[GeoNavigationController alloc]initWithRootViewController:???我完全不知道它在那里寻找什么。目前我没有任何其他视图控制器对象。只要你能找到它,导航控制器在哪里并不重要。唯一重要的是你初始化它时使用的控制器。你可能需要通用navi吗使用
GeoNavigationController
作为根视图控制器的控制器,您将从根视图控制器导航到详细视图控制器?为什么我不能创建我的GeoNavigationController的实例并将其添加到窗口,然后将视图推送到控制器?我想我的困惑在于使用Interface Builder执行此操作。我添加了一个工具栏和按钮,并使“shell”看起来像我想要的那样。当我这样做时:gnc=[[GeoNavigationController alloc]initWithNibName:@“GeoNavigation”bundle:nil];然后是[self.window addSubview:gnc.view],我看不到我的自定义布局。我看到了一个空白的导航控制器。如果您希望显示GeoNavigationController,那么它不是导航控制器。它是简单视图控制器,应该放在导航控制器中,您可以从中将其他控制器推到简单navigati中geo view控制器的顶部在控制器上。