Как установить rootViewController с помощью Swift, iOS 7
Я хочу установить rootViewController в делегат приложения.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
var rootView: MyRootViewController = MyRootViewController()
//Code to set this viewController as the root view??
return true
}
Ответы
Ответ 1
Вы можете сделать что-то вроде этого.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
var rootView: MyRootViewController = MyRootViewController()
if let window = self.window{
window.rootViewController = rootView
}
return true
}
Ответ 2
Если вы используете раскадровку и хотите программно настроить rootViewController, сначала убедитесь, что ViewController имеет идентификатор раскадровки в инспекторе идентификации.
Затем в AppDelegate выполните следующие действия:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// get your storyboard
let storyboard = UIStoryboard(name: "Main", bundle: nil)
// instantiate your desired ViewController
let rootController = storyboard.instantiateViewControllerWithIdentifier("MyViewController") as! UIViewController
// Because self.window is an optional you should check it value first and assign your rootViewController
if let window = self.window {
window.rootViewController = rootController
}
return true
}
Ответ 3
Swift 2.0:
var window: UIWindow?
var storyboard:UIStoryboard?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window?.makeKeyAndVisible()
storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = storyboard!.instantiateViewControllerWithIdentifier("secondVCID")
if let window = self.window {
window.rootViewController = rootController
}
Ответ 4
Чтобы показать, что вам нужно сделать, если вы не используете раскадровку. Внутри AppDelegate внутри приложения функции.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let frame = UIScreen.mainScreen().bounds
window = UIWindow(frame: frame)
let itemsViewControler: UITableViewController = BNRItemsViewController()
if let window = self.window{
window.rootViewController = itemsViewControler
window.makeKeyAndVisible()
}
return true
}
Ответ 5
if let tabBarController = self.window!.rootViewController as? UITabBarController
{
tabBarController.selectedIndex = 0
}