2015-10-11 6 views
0

У меня есть UISplitViewController в моем приложении iOS, но мой контроллер начального вида является нормальным UIViewController.Swift 2 - Open Split View Controller

Я хочу, чтобы открыть UISplitViewController при нажатии кнопки на UIViewController:

@IBAction func openSplitViewController(sender: AnyObject) { 
    let splitViewController = UISplitViewController() 

    let leftNavController = splitViewController.viewControllers.first as! UINavigationController 
    let masterViewController = leftNavController.topViewController as! MenuTableViewController 

    let rightNavController = splitViewController.viewControllers.last as! UINavigationController 
    let detailViewController = rightNavController.topViewController as! DetailViewController 

    splitViewController.viewControllers = [masterViewController,detailViewController]; 

    self.presentViewController(splitViewController, animated: true, completion: nil) 
} 

Но когда я нажимаю кнопку, я получаю:

fatal error: unexpectedly found nil while unwrapping an Optional value 

Как я должен быть открытие UISplitViewController от UIViewController?

+0

Никто не имеет никаких идей? –

ответ

0

Ваша ошибка не имеет ничего общего с UISplitViewController, ошибка, которую вы получаете, связана с тем, что один или несколько аргументов - nil.

Так что убедитесь, что все созданные вами viewController s являются настоящими и не ноль.

Посмотрите, например, на этой линии:

let leftNavController = splitViewController.viewControllers.first as! UINavigationController 

В этот момент ваш splitViewController не имеет viewController присвоенный, так leftNavController будет ноль. Вам необходимо будет создать navController и viewController, прежде чем добавлять их в splitViewController.

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