zoukankan      html  css  js  c++  java
  • performSegueWithIdentifier 不生效的解决办法

    相信很多人都会遇到这样的需求:

    APP 打开以后,判断用户是否登录,如果未登录,就跳转到登陆页。

    今天我也遇到了这个需求,发现我封装的一个 `func checkLoginStatus()` 放在 `viewDidLoad` 里调用根本没反映,Google 了一圈,得到了解决办法:

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)
        checkLoginStatus()
    }

    为什么?


    iOS 视图控制对象的生命周期如下:

    init-初始化程序

    viewDidLoad-加载视图

    viewWillAppear-UIViewController对象的视图即将加入窗口时调用;

    viewDidApper-UIViewController对象的视图已经加入到窗口时调用;

    viewWillDisappear-UIViewController对象的视图即将消失、被覆盖或是隐藏时调用;

    viewDidDisappear-UIViewController对象的视图已经消失、被覆盖或是隐藏时调用;

    viewVillUnload-当内存过低时,需要释放一些不需要使用的视图时,即将释放时调用;

    viewDidUnload-当内存过低,释放一些不需要的视图时调用。


    原因很简单:如果在 viewDidLoad 时就启动 Segue 的话,依然会被后来填充的视图覆盖,要是在视图载入完成以后的 viewDidAppear 中启动 Segue,就 OK 了!

     

     
     
  • 相关阅读:
    vue响应式原理之Observer、Dep、Watcher
    vscode 常用插件
    脚手架搭建vue项目
    搭建框架
    select 自匹配问题
    Winform 根据Point截图并保存到指定路径
    C# Screen 类(多屏幕开发)
    C# WindowsService安装与卸载
    WebService WSDL动态访问
    C# 操作ini文件
  • 原文地址:https://www.cnblogs.com/Cheetah-yang/p/4669905.html
Copyright © 2011-2022 走看看