Ios pushViewController:已设置动画:正在崩溃,没有有用的输出
这对我来说太奇怪了。昨天我想我在iPhone4iOS6设备上也发生过同样的故障。今天我试着在模拟器中运行我的应用程序,当我调用pushViewController时,它确实崩溃了。下面是使其崩溃的代码Ios pushViewController:已设置动画:正在崩溃,没有有用的输出,ios,pushviewcontroller,Ios,Pushviewcontroller,这对我来说太奇怪了。昨天我想我在iPhone4iOS6设备上也发生过同样的故障。今天我试着在模拟器中运行我的应用程序,当我调用pushViewController时,它确实崩溃了。下面是使其崩溃的代码 PFObject *selectedGame = [self.myTurnList objectAtIndex: index]; [self.myTurnList removeObjectAtIndex:index]; UIStoryboard *storyboard =
PFObject *selectedGame = [self.myTurnList objectAtIndex: index];
[self.myTurnList removeObjectAtIndex:index];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
GuessWordController *guessWord = [storyboard instantiateViewControllerWithIdentifier:@"GuessWordController"];
guessWord.game = selectedGame;
//[self performSegueWithIdentifier:@"toGuessWord" sender:self];
[self.navigationController pushViewController:guessWord animated:NO];
return;
我在里面放了一堆NSLog,从返回声明开始,一切看起来都很好。但是,我会抛出'EXC_BAD_ACCESS',并且没有输出到调试器。我的GuessWordController的viewDidLoad中也有NSLog,但没有一个出现
我尝试过将pushViewController改为使用故事板设置的segue,这似乎很管用。但是我想用pushViewController来做,因为我不想要动画
是否有任何原因会导致应用程序崩溃,特别是ios5.1?为什么不使用segue并创建一个没有动画的自定义segue 这比你想做的容易多了 从这里的文件 你可以使用这个功能
- (void)perform
{
// Add your own animation code here.
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
}
然后删除所有您拥有的内容,只需使用[self-performsguewithidentifier:@“toguesword”发送者:self]代码>取而代之
那么在准备阶段你需要
GuessWordController *controller = segue.destinationViewController;
controller.game = selectedGame;
这应该是可行的。您是否将控制器的情节提要Id设置为情节提要中的“GuessWordController”?或者你只是在引用这个类?我猜你是在传递一个已发布的对象。试着打开僵尸。如果您得到一个segfault(对于EXC\u BAD\u ACCESS
错误,这是一个不太花哨的名称),那么您将该消息发送给一个解除分配的对象。不要这样做。故事板ID实际上是“GuessWordController”&我使用的是ARC。向已释放/解除分配的对象发送消息可能是问题所在。但是ARC不应该处理这个吗?为什么它99%的时间都能在iOS6上工作?iOS5没有ARC吗?如果删除返回,它会崩溃吗?试图创建自定义序列,我遇到了类似的问题-(void)执行{[[self sourceViewController]navigationController]pushViewController:[self destinationViewController]动画:否];}我还需要包括其他内容吗?这正是我所做的,只是我想做一次推送,因为我需要保留导航控制器,并且我希望能够弹出到上一个视图。所以我使用了pushViewController而不是presentModalViewController。但是很明显,pushViewController是我所有问题的根源。你需要阅读有关segues和故事板的内容。segue为您进行推送,并为您创建视图控制器。你不应该自己创建VC。我知道如何制作片段和故事板。我自己创建VC的原因是因为我想做一个没有动画的基本推送。我以前做过好几次,我知道它应该会起作用。但是由于某种原因,这个实例在我使用它之前就被释放了。如果你使用的是一个segue,那么你根本不应该创建自己的VC。故事板会帮你做到这一点。您只需在脚本文件中选择自定义segue类,然后让segue完成工作。