Iphone 第一次启动应用程序时未加载子视图

Iphone 第一次启动应用程序时未加载子视图,iphone,xcode4,subview,mainwindow,Iphone,Xcode4,Subview,Mainwindow,我对iPhone开发还不熟悉。我试图构建一个简单的应用程序,其中包含一个窗口和一个导航控制器作为该窗口的子视图。问题是:当我启动应用程序时,子视图没有加载。我只有一个黑屏的窗户。要加载视图控制器,我必须退出应用程序并再次启动它,然后我就有了带有导航控制器的子视图。我直接在窗口中添加了一个按钮,以确保黑屏不是问题,但我在启动时看到了该按钮 这是我在AppDelegate中的代码: - (BOOL)application:(UIApplication *)application didFinishL

我对iPhone开发还不熟悉。我试图构建一个简单的应用程序,其中包含一个窗口和一个导航控制器作为该窗口的子视图。问题是:当我启动应用程序时,子视图没有加载。我只有一个黑屏的窗户。要加载视图控制器,我必须退出应用程序并再次启动它,然后我就有了带有导航控制器的子视图。我直接在窗口中添加了一个按钮,以确保黑屏不是问题,但我在启动时看到了该按钮

这是我在AppDelegate中的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
    [self.window addSubview:_navigationController.view]; 
    [self.window makeKeyAndVisible];    
    return YES;
}
你有解决这个问题的办法吗


谢谢。

您需要确保已设置视图层次结构。窗口的rootViewController将是UINavigationController。UINavigationController控制ViewController的层次结构,因此在实例化它时,需要分配一个rootViewController。通常情况下,这是UITableView的一个子类

因为您是alloc/初始化窗口,所以我假设您没有带有UINavigationController的XIB/NIB和UITableViewController之类的关联rootViewController。此外,您需要将rootViewController分配给窗口,而不是添加导航控制器的视图。由于iOS4,这是做事的首选方式。我也看到了。请尝试以下代码:

YourViewController *yourViewController = /* code for alloc/initing your viewController */
_navigationController=[[UINavigationController alloc] initWithRootViewController:yourViewController ]
self.window.rootViewController=_navigationController; /* instead of using [self.window addSubview: _navigationController.view] */
[self.window makeKeyAndVisible];
如果您使用的是XIB/NIB,那么您需要确保_navigationController已连接到XIB文件,并且有一个viewController的子类作为其rootViewController连接


祝你好运,谢谢。但还是一样的问题。你实例化了UINavigationController吗?在哪里?我该怎么做呢?谢谢。在您当前的代码中,您将_navigationController的视图指定为窗口的子视图。您正在哪里实例化_navigationController。由于您正在alloc/初始化窗口,因此您似乎没有使用NIB/XIB,因此您的_navigationController可能为nil。如果您没有使用XIB/NIB,那么您需要分配/初始化UINavigationController。