查詢了一下,發現要在 viewDidAppear 呼叫就能避免現象,有人說是在 viewDidLoad 時沒有 Window Hierarchy 資訊。擺在 viewDidAppear 時,若彈跳的 YourViewController 關閉時,切入 ViewController 時,又進入 viewDidAppear 又會彈跳 YourViewController 出來。
總之,測試時應該可以先這樣用吧,若要正式使用大概要多加一些條件判斷:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self presentViewController:[[YourViewController alloc] init] animated:YES completion:NULL];
}
參考資料@ Updated 2014-08-17: 另一招則是在 viewDidLoad 中,採用 dispatch_async -> dispatch_get_main_queue 使用也行。
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_async(dispatch_get_main_queue(), ^{
YourViewController *v = [[YourViewController alloc] init];
[self presentViewController:v animated:YES completion:^{}];
});
}
沒有留言:
張貼留言