我在初始 View Controller 的 viewWillAppear 中有这段代码
if (howManyLeft == 0) {
NSLog(@"HERE");
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
DayCompleteViewController *dayComplete = (DayCompleteViewController *)[storyboard instantiateViewControllerWithIdentifier:@"dayComplete"];
dayComplete.delegate = self;
[self presentModalViewController:dayComplete animated:YES];
}
NSLog 正确触发,但第二个 View 不会立即显示。 如果您稍后单击显示弹出 View 的 tableview 单元格,然后关闭弹出 View ,即使没有其他代码显示模态视图,也会显示模态视图。
为什么它不在启动时立即显示,而是等待某些事情先发生?
当我有一个 NavigationController 和 segue 时,我的这个工作正常,但是我已经删除了它,因为它不需要。
最佳答案
将该代码从 viewWillAppear 移至 viewDidAppear - 您会遇到延迟(通常是 wait_fences 错误),因为您正在尝试呈现模态当前 View 出现之前的 View Controller (因此它会尝试同时呈现两个 View Controller )
关于objective-c - presentModalViewController 直到稍后才触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10447990/