我在输出中有这个警告,但它没有出现'问题'(我现在没有问题)。但是在我的输出中,我得到了:
Warning: Attempt to present <DeviceDetailViewController: 0x84a7340> on <UINavigationController: 0x74a14f0> while a presentation is in progress!
虽然它在崩溃或警告/问题方面没有影响我的代码,但它让我烦恼!
全部谢谢!
我在google上搜索了一下并且听不到任何关于这个问题的内容 - 类似但没有帮助。
更新了问题:
我的代码中有这个:
#pragma mark - Segue
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"UpdateRecords"]) {
NSManagedObject *selectedDevice = [self.devices objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
DeviceDetailViewController *destViewController = segue.destinationViewController;
destViewController.device = selectedDevice;
}
}
- (IBAction)addButtonPressed:(id)sender {
[self performSegueWithIdentifier:@"register" sender:self];
}
如果没有用户,则addButton方法“注册”(执行寄存器序列)用户,并且更新寄存器序列转到同一屏幕,但允许您更新详细信息。
希望我清楚。
答案 0 :(得分:-1)
正确解决此问题的方法是不从可能因视图转换而调用的方法调用故事板segues或显示视图控制器。例如,不要从viewDidLoad
呈现视图控制器;从viewDidAppear
代替它。
一个简单的黑客就是将演示延迟3/4秒,如下所示:
double delayInSeconds = 0.75;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self presentViewController:myVC animated:YES completion:nil];
});
根据您的视图层次结构,可能会出现意外的副作用。