2015-06-17 3 views
1

Я использую панель вкладок, которая имеет 4 вкладки, и я хочу установить вторую вкладку по умолчанию. Я написал следующий код:Установите вторую вкладку как вкладку по умолчанию в swift

self.tabBarController!.selectedIndex = 2 

Но я получил следующее сообщение об ошибке:

fatal error: unexpectedly found nil while unwrapping an Optional value 

И еще одна вещь, которую я могу скрыть UIViewController или UITabBarController, если да, то каким образом?

ответ

2

вы должны сделать это в AppDelegate классе на didFinishLaunchingWithOptions метод, как тот

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool { 

    if self.window!.rootViewController as? UITabBarController != nil { 
     var tabbarController = self.window!.rootViewController as UITabBarController 
     tabbarController.selectedIndex = 2 
    } 
    else{ 
     println("couldn't reach rootViewController named UITabBarController") 
    } 
    return true 
} 
+0

Благодарим за быстрый ответ. Я использовал приведенный выше код в методе didFinishLaunchingWithOptions, но приложение отображает первую вкладку в качестве вкладки по умолчанию. –

+1

- ваш rootViewController с именем UITabBarController или другой? Это дает какую-либо ошибку? Если это не значит, что self.window !.rootViewController как? UITabBarController - это нуль, а блок кода не выполняет, вы можете увидеть, записав инструкцию else –

+0

Да, это идет в другую часть. Что мне теперь делать? –

3

Я использовал код Özgür и обновлял его для Swift 3 и она прекрасно работает:

if window?.rootViewController as? UITabBarController != nil { 
     let tabBarController = window!.rootViewController as! UITabBarController 
     tabBarController.selectedIndex = 3 // Opens the 4th Tab 
    } 

Я уронил заявление еще так как это довольно очевидно, если он не работает.

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