У меня есть UINavigationController как мой rootViewController, который содержит UIViewController (который я буду называть проектами ради этого обсуждения). В проектах у меня есть кнопка, которая при нажатии на нее я хочу загрузить 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 закрыт. Может ли кто-нибудь помочь мне, объяснив правильный метод достижения этого?
Благодаря