2011-07-26 163 views
0

我有一個視圖控制器,我想在其中實現一個導航控制器,但是當我通過Interface Builder或以編程方式實現它時,它不起作用。在視圖控制器中實現導航控制器

其中大部分是我通過Interface Builder實現的,但這裏是我在AppDelegate中實現的代碼,以及我試圖在視圖控制器中實現的代碼。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[window addSubview:navController.view]; 

我知道我不能在一個視圖控制器實行「窗口」,所以我想這在我的視圖控制器:

[self.view addSubview:navController]; 

但它仍然無法正常工作。

+0

你需要做的是這樣的[self.window addSubview:navController.view]和initWithRootViewController之前,你需要分配你的viewController對象 – booleanBoy

+0

Chk我的答案。並以同樣的方式執行 – booleanBoy

回答

2

在應用程序委託的applicationDidFinishLaunching中,您必須添加此代碼。

viewController=[[myViewController alloc]init]; 
navigationController=[[UINavigationController alloc]initWithRootViewController:viewController]; 
[self.window addSubview:navigationController.view]; 

其中的viewController是myViewController類的對象,其ü需要添加導航控制器。它在appDelegate的頭文件中聲明。類似的,navigationController也在tat中聲明。希望這可以幫助。

新代碼:

AppSettings *settings = [[AppSettings alloc] init]; 
UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController:settings]; 
navCont.navigationBar.barStyle = UIBarStyleBlackTranslucent; 
[self.navigationController presentModalViewController:navCont animated:YES]; 
[settings release]; 
[navCont release]; 
+0

我已經嘗試在applicationDidFinishLaunching下的appDelegate中實現此操作,但我想通過自己的viewController實現它。 – Souljacker

+0

然後嘗試用self替換viewcontroller,並將此代碼添加到您想要實現的viewcontroller的loadview方法中.... – booleanBoy

+0

像這樣: - (void)loadView {[NewAlarm alloc] init] ; navController = [[UINavigationController alloc] initWithRootViewController:self]; [viewController addSubview:navController]; } – Souljacker

0

試試這個在您的-applicationDidFinishLaunching:

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[self.window setRootViewController:navigationController]; 
[self.window makeKeyAndVisible];