我正在创建一个基本的用户页面,如果用户没有注册,我会在启动时自动转到另一个UIViewController
我创建了一个设置为false的bool,然后在viewDidLoad中添加了以下内容:

if (userIsRegistered == false) {
        performSegueWithIdentifier("signUp", sender: nil)
    }

我知道这很简单,但似乎没用。
为了确保segue代码有效,我添加了一个UIButton并用相同的代码执行了一个IBAction,然后它就可以正常工作了。不过,正如我所提到的,如果变量userIsRegistered设置为false,我想在启动时执行segue。

最佳答案

它不工作,因为它是在viewDidLoad中执行的,在viewDidLoad中,所有segues组件可能都不可用。例如,如果您使用的是push segue,navigation controller属性可能尚未设置,或者导航控制器尚未就绪。。。
要让它工作,您可以尝试在viewDidAppear:方法中执行此操作,但在这种情况下,您必须注意segues动画,以便它正确显示。
为了避免动画问题,并且因为我认为它更符合逻辑,您可能需要在创建此控制器之前检查用户是否已注册:
user registered=显示“基本用户页”控制器
user unregistered=显示注册控制器

关于ios - 启动时Segue,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31222083/

10-09 16:30