2013-04-17 2 views
0

Я пытаюсь добавить UISplitViewController в качестве подзапроса моему ViewController, когда я нажал на него кнопку. Он работает неправильно.Как добавить UISplitViewController в качестве подзаголовка?

Это правильный способ сделать?

Благодаря

+3

Вы не должны этого делать. Согласно документам Apple, UISplitViewController должен быть только контроллером корневого представления окна. – rdelmar

+0

@rdelmar Итак, если мне нужно представление перед показом UISplitViewController. Что мне делать? –

+0

Покажите другой вид с помощью стиля презентации UIModalPresentationFullScreen. –

ответ

2

Вопрос касается комментария обсуждения ...

Вы можете установить вид корневой на свой другой контроллер представления, а затем, как только вы сделали с ним, установить вид корня к контроллеру Разделить , В противном случае вы можете играть с несколькими UIWindows. Оба могут быть волосатыми, но это лучший подход, который я нашел.

Некоторые псевдокоды.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.viewController = [[CWDLoginViewController alloc] initWithNibName:@"CWDLoginViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

Теперь я, вероятно, либо сделать делегата для контроллера представления Логин или использовать уведомления, что-то сказать, ваше приложение делегата, что необходимо изменить self.window.rootViewController к вашему UISplitViewController

- (void)loginDidFinish { 
    CWDSplitViewController *splitViewController = [[CWDSplitViewController alloc] initWithNibName:@"CWDSplitViewController" bundle:nil]; 
    self.window.rootViewController = splitViewController; 
} 

Если вы используете раскадровки, чем вы можете использовать

[[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"MyIdentifier"];

вместо

[[CWDLoginViewController alloc] initWithNibName:@"CWDLoginViewController" bundle:nil];

+0

Спасибо за ваши коды и полезные комментарии. –

Смежные вопросы