美文网首页
关于ViewController页面跳转

关于ViewController页面跳转

作者: JCYDSHANKS | 来源:发表于2019-07-06 15:22 被阅读0次

首先来说一下关于设置启动页面,通常情况下创建一个项目会自动生成一个ViewController和对应的StoryBoard,如果不想通过StoryBoard启动,要在Info.plist中,将Main storyboard file base name的值清理掉(一般为Main,不清理的情况下可以指定其他的storyboard文件名)。

创建一个VC可以通过纯代码创建,也可以通过关联storyboard可视化创建。
这两种方式在代码中是不同的。但都是在AppDelegate中设置的。
AppDelegate中包含了四个方法,对Application的整个生命周期进行管理。
这里主要关注首次启动的生命周期方法,设置启动的VC都是在这进行的。

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  return true
}

通过纯代码设置启动页

        let vc = ViewController()
        let naviVc = UINavigationController(rootViewController: vc)
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = naviVc
        window?.makeKeyAndVisible()
        return true

绑定了storyboard的ViewController

       let sb =  UIStoryboard(name: "Main", bundle: nil)
        let vc = sb.instantiateInitialViewController()
        let naviVc = UINavigationController(rootViewController: vc!)
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = naviVc
        window?.makeKeyAndVisible()
        return true

这里要注意,如果storyboard中有多个ViewController,需要对首次启动对VC进行设置,勾选Inherit Module From Target

设置首次启动vc.jpg

ViewController之间的跳转

通常通过navigationController即可进行页面跳转:

let vc = ViewController()
self.navigationController?.pushViewController(vc, animated: true)

但是如果你的ViewController绑定了storyboard,就需要通过storyboard来跳转了

        let storyboard = self.storyboard
        let secondVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController")
        
        self.navigationController?.pushViewController(secondVC!, animated: true)

相关文章

网友评论

      本文标题:关于ViewController页面跳转

      本文链接:https://www.haomeiwen.com/subject/fsvphctx.html