我有一個UINavigationController作爲我的rootViewController,它包含一個UIViewController(我將爲此討論調用項目)。在Projects中,我有一個按鈕,點擊後,我想加載一個UISplitViewController - 最好從底部向上滑動,儘管這只是一個很好的功能。UIViewController加載UISplitViewController
在UISplitViewController,我有一個「關閉」按鈕,我想要刪除重新顯示項目的UISplitViewController。
從我讀到的,UISPlitViewControllers必須是rootViewControllers。考慮到這一點,我的代碼到目前爲止如下。
的AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
...
// LOAD THE PROJECTS PANEL ROOT VIEW CONTROLLER INTO THE WINDOW
ProjectsListViewController *projects = [[ProjectsListViewController alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:projects];
[window setRootViewController:navigationController];
[window makeKeyAndVisible];
return YES;
}
ProjectsViewController
-(IBAction)loadDetails
{
ProjectNavigationController *projectNavPanel = [[ProjectNavigationController alloc] init];
ProjectDetailController *projectDetailPanel = [[ProjectDetailController alloc] init];
ProjectSplitViewController *splitRootController = [[ProjectSplitViewController alloc] init];
[splitRootController setViewControllers:[NSArray arrayWithObjects:projectNavPanel, projectDetailPanel, nil]];
[[self view] removeFromSuperview];
[[appDelegate window] setRootViewController:splitRootController];
}
UISplitViewController Naviagaion
- (void)loadProjects
{
// LOAD THE PROJECTS LIST BACK INTO VIEW
ProjectsListViewController *projectsList = [[ProjectsListViewController alloc] init];
[[[self parentViewController] view] removeFromSuperview];
[[appDelegate window] setRootViewController:projectsList];
}
現在,我知道這是錯誤的,不出所料,它對其他方法有不利影響。實際上,當我輸入這個時,我注意到Projects頁面在啓動時被加載到navigationController中,但是在splitViewController關閉時直接放置在窗口上。任何人都可以通過解釋實現這個的正確方法來幫助我嗎?
感謝