如何使用Swift,iOS 7设置rootViewController

Ste*_*Fox 27 ios swift

我想在app delegate中设置rootViewController ..

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

     var rootView: MyRootViewController = MyRootViewController()
     //Code to set this viewController as the root view??


     return true

}
Run Code Online (Sandbox Code Playgroud)

fru*_*sli 46

如果您正在使用故事板并希望以编程方式设置rootViewController,请首先确保ViewController在Identity Inspector中具有Storyboard ID.然后在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's value first and assign your rootViewController
   if let window = self.window {
      window.rootViewController = rootController
   }

   return true
}
Run Code Online (Sandbox Code Playgroud)


Con*_*nor 32

你可以做这样的事情.

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

     var rootView: MyRootViewController = MyRootViewController()

     if let window = self.window{
            window.rootViewController = rootView
     }

     return true
}
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚在Xcode 7.1上使用了这个代码,并且编译器声明由于rootView永远不会发生变异,因此可以使用`let`关键字而不是`var`使其成为常量. (4认同)

A.G*_*A.G 15

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
  }
Run Code Online (Sandbox Code Playgroud)


Ale*_*yan 12

为了让它显示,如果您不使用故事板,则需要执行一些操作.在功能应用程序内部的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
}
Run Code Online (Sandbox Code Playgroud)