重寫RootViewController.xib在UISplitViewController
安裝在iPad上,RootViewController
是UIViewController
類與XIB文件(不是UITableViewController
)在UISplitViewController
我的App有幾個目標。根據所選的目標(並通過代碼中的#ifdef ...
),我想爲RootViewController
指定一個不同的XIB文件。
我想的變化具有application:didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Add the split view controller's view to the window and display.
self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];
return YES;
}
== EDIT ==
我刪除從MainWindow.xib中所有控制器進行,然後加入在AppDelegate中以下行。 RootViewController與相應的XIB一起啓動,但SplitViewController中的RootVC和DetailsVC之間的機制不起作用;即。當擊中RootVC中的一個應該觸發DefaultVC變化的按鈕時,什麼都不會發生。我明顯錯過了一些東西。
splitViewController = [[UISplitViewController alloc] init];
#ifdef OPTION1
rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController_1" bundle:nil];
#elif OPTION2
rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController_2" bundle:nil];
#endif
defaultViewController = [[[DefaultViewController alloc] init] autorelease];
UINavigationController *rootNav = [[[UINavigationController alloc] initWithRootViewController:rootViewController] autorelease];
UINavigationController *defaultNav = [[[UINavigationController alloc] initWithRootViewController:defaultViewController] autorelease];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootNav, defaultNav, nil];
splitViewController.delegate = defaultViewController;
self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];
// Add the split view controller's view to the window and display.
self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];
謝謝傑姆斯,這絕對是比我想出來的更好的方式。 – 2012-07-01 14:32:53
我希望Apple會發布一些關於項目管理的好文檔(甚至是WWDC視頻!)。我每天都要通過試驗和錯誤來發現太多東西 - 其中大部分都是在NeXTSTEP的舊版Project Builder中發現的! – jemmons 2012-07-01 14:37:52