在多个视图之间切换的最佳做法是什么?更改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但我是对的吗?
我的第一个控制器--ViewController
class ViewController: UIViewController,testProtocol {
@IBAction func btInit(sender: AnyObject) {
println("Bt Init")
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as targetViewController
self.presentViewController(initViewController,animated: false, nil)
}
var targetController = targetViewController();
override func viewDidLoad() {
super.viewDidLoad()
self.targetController.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func testDelegate(){
println(" in my view controller delegate ")
}
}
Run Code Online (Sandbox Code Playgroud)
在我的第二个视图控制器 - targetViewController
protocol testProtocol {
func testDelegate() …Run Code Online (Sandbox Code Playgroud)