2011-12-03 26 views
0

我是iPhone新手。我试图用窗口和导航控制器构建一个简单的应用程序作为此窗口的子视图。问题是这样的:当我启动应用程序时,子视图没有加载。我只是有一个黑屏的窗户。要加载视图控制器,我必须退出应用程序并再次启动它,然后使用导航控制器获得我的子视图。我直接在窗口中添加了一个按钮,以确保黑屏不是问题,但我在启动时看到了按钮。SubView没有加载我的应用程序的第一次启动

这是我在我的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; 
} 

你有这个问题的任何解决方案?

谢谢。

回答

2

你需要确保你有你的视图层次结构设置。窗口的rootViewController将是UINavigationController。 UINavigationController控制viewControllers的层次结构,所以当你实例化它时,你需要分配一个rootViewController。通常这是UITableView的子类。

因为你是alloc/initing窗口,我假设你没有UINavigationController的XIB/NIB和像UITableViewController这样的关联的rootViewController。另外,不需要添加导航控制器的视图,您需要将rootViewController分配给窗口。自从iOS4以来,这是做事的首选方式。另请参阅here。试试这个代码:

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的。

好运

+0

谢谢。但它仍然是同样的问题。 –

+0

你有没有实例化一个UINavigationController? – timthetoolman

+0

哪里?我该怎么做? 谢谢。 –

相关问题