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相關聯的視圖永遠不會出現。任何想法發生了什麼?
感謝
還不行。然後,我添加了一行發送子視圖到後面,所以主視圖將首先加載,但這也不起作用。不確定是否存在我違反的基本設計模式。 mapview會顯示我是否將它在mainviewcontroller的init中的導航堆棧上按下,因爲應用程序委託會調用makewindowkey和visible,這會調用loadview等等。但是,當我響應用戶表單元格選擇時,不會發生這種情況。是否有額外的代碼我應該在這裏發佈?謝謝。 – 2011-06-14 18:19:48
好的,有些進步。我添加了:self.navController = [[UINavigationController alloc] initWithRootViewController:self]; [self.view addSubview:navController.view]; [self.navController pushViewController:mapController animated:YES];這似乎工作。 – 2011-06-15 00:18:17