2011-06-14 63 views
0

民間, 新的iPhone開發,所以我非常感謝您的幫助。我一直在看文檔,並嘗試很多事情來讓我的導航控制器功能工作,但不能。導航控制器問題:查看未加載後pushViewControlleranimated調用

這是情況。我有一個應用程序委託其設定其根控制器成爲導航控制器:

- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

self.window.rootViewController = self.mainViewController.navController; 

[self.window makeKeyAndVisible]; 
return YES; 
} 

導航控制器是mainviewcontroller的屬性,因爲我打算將用戶帶到地圖視圖(與一個MapViewController相關聯)僅當他們在mainviewcontroller擁有的tableview中選擇一個項目時。我還沒有想到一個優雅的方式來通知appdelegate關於錶行選擇,因此我正試圖在mainviewcontroller中處理這個。

在mainviewcontroller init函數:

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 

self = [super initWithCoder:aDecoder]; 
if (self) { 
    // Custom initialization 
    navController = [[UINavigationController alloc] initWithRootViewController:self]; 
    mapController = [[MapViewController alloc] init]; 
} 
return self; 
} 

在MAINVIEW控制器,當用戶從tableview中選擇一個項目,我稱:

[self.navController pushViewController:mapController animated:YES]; 

與我的MapViewController相關聯的視圖永遠不會出現。任何想法發生了什麼?

感謝

回答

0

添加此

[self.window addSubview:self.mainViewController.navController.view]; 

之前

[self.window makeKeyAndVisible]; 
+0

還不行。然後,我添加了一行發送子視圖到後面,所以主視圖將首先加載,但這也不起作用。不確定是否存在我違反的基本設計模式。 mapview會顯示我是否將它在mainviewcontroller的init中的導航堆棧上按下,因爲應用程序委託會調用makewindowkey和visible,這會調用loadview等等。但是,當我響應用戶表單元格選擇時,不會發生這種情況。是否有額外的代碼我應該在這裏發佈?謝謝。 – 2011-06-14 18:19:48

+0

好的,有些進步。我添加了:self.navController = [[UINavigationController alloc] initWithRootViewController:self]; [self.view addSubview:navController.view]; [self.navController pushViewController:mapController animated:YES];這似乎工作。 – 2011-06-15 00:18:17