prepareForSegue 调用但不加载下一个 UIViewController

Posted

技术标签:

【中文标题】prepareForSegue 调用但不加载下一个 UIViewController【英文标题】:prepareForSegue called but not loading the next UIViewController 【发布时间】:2014-07-30 16:49:16 【问题描述】:

我正在处理一个带有两个 UIViewController 的应用程序。当应用程序启动时,会触发 LoaderViewController。在该视图控制器上,我正在设置要启动的应用程序,然后尝试进入 ViewController。问题是 prepareForSegue 方法被正确调用,但它什么也没做。我正在尝试以与以前相同的方式进行导航。我可能在这里缺少什么?我还是 ios 开发的新手。

 class LoaderViewController: UIViewController 
 @IBOutlet weak var applicationLoadingIndicator: UIActivityIndicatorView!

  override func didReceiveMemoryWarning() 
      super.didReceiveMemoryWarning()
  

  override func viewDidLoad() 
      super.viewDidLoad()


      applicationLoadingIndicator.startAnimating()
      self.performSegueWithIdentifier("ToMenuViewController", sender: self)
  

  override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 
      var vc: ViewController = segue.destinationViewController as ViewController
  

这是故事板的图像:

编辑 - 解决方案:

解决方案是将 performSegueWithIdentifier 调用更改为 viewDidAppear() 方法。

【问题讨论】:

能否分享你的故事板截图以及你如何命名你的segues? Ofc!为帖子添加了图片。 【参考方案1】:

你不应该在viewDidLoad 中继续前进,因为那还为时过早。至少,您应该转而使用viewDidAppear

【讨论】:

以上是关于prepareForSegue 调用但不加载下一个 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

prepareForSegue 调用了两次

prepareForSegue 在 performSegue 之前调用

调用 prepareForSegue 而不是 ib 按钮

Swift:PrepareForSegue 正在运行但未加载 ViewController

prepareForSegue 里面的函数不会执行

prepareForSegue 不会初始化新视图