iOS Swift window.rootViewController vs presentViewController

use*_*075 6 uiviewcontroller ios presentviewcontroller swift

在多个视图之间切换的最佳做法是什么?更改rootViewController或使用模态视图?

设置rootviewController:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var vc : UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController
var window :UIWindow = UIApplication.sharedApplication().keyWindow!
window.rootViewController = vc;
window.makeKeyAndVisible()
Run Code Online (Sandbox Code Playgroud)

更改模态视图:

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController
self.presentViewController(initViewController,animated: false, nil)
Run Code Online (Sandbox Code Playgroud)

当我需要向用户呈现其他视图时,我很困惑.

ps在我的情况下,我有一个以登录表单开头的应用程序作为rootViewController.登录后,我认为最好改变,rootViewController但我是对的吗?

Sha*_*var 5

我的建议是,不要为此烦恼太多,您只需覆盖 rootviewController ,其余的事情将由您的应用程序处理。

    let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as TargetViewController
    self.window?.rootViewController? = initViewController
Run Code Online (Sandbox Code Playgroud)

在此代码中,我们只是从 AppDelegate 重写 rootview 控制器。


JAL*_*JAL 1

应用程序窗口的根视图控制器是启动屏幕之后加载到窗口中的第一个视图。尽管可以切换窗口的视图控制器来更改视图,但请考虑使用UINavigationController并将附加视图控制器推送到视图堆栈上。这为用户提供了更大的灵活性,允许用户在视图之间来回切换。