AlertController,viewDidLoad的一些问题

UIAlertController在显示时有一个推出的过程,用alertview,只需要show一下,那么我想在viewDidLoad方法中推出一个alert,总会提示
Attempt to present <UIAlertController: 0x7fe42143e910> on <ViewController: 0x7fe42167e7e0> whose view is not in the window hierarchy!
当然,我设置个button推出就可以了,但这个问题应该怎么解决一下,这个推出的过程该怎么搞一下。

  • (void)viewDidLoad; // Called after the view has been loaded. For view controllers created in code, this is after -loadView. For view controllers unarchived from a nib, this is after the view is set.
    讲道理,为什么这个方法中阻塞主线程会让视图渲染终止呢。说好的DidLoad呢。

我的错,没有搞清楚生命周期
亲测,放在viewDidAppear就可以了
但怎样确定viewDidAppear是否执行了,没有类似isViewLoaded的属性啊。

阅读 4k
1 个回答

根据你的需求,你可以在你的 VC 里自己放一个开关,比如:BOOL isLoaded,然后在 viewDidLoad 里设置它为 YES,拿着这个开关去判断是否要在 viewDidAppear 里去显示 UIAlertController 就可以了。跟你想要的 isViewLoaded 是一个意思。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题