Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios pushViewController:已设置动画:正在崩溃,没有有用的输出_Ios_Pushviewcontroller - Fatal编程技术网

Ios pushViewController:已设置动画:正在崩溃,没有有用的输出

Ios pushViewController:已设置动画:正在崩溃,没有有用的输出,ios,pushviewcontroller,Ios,Pushviewcontroller,这对我来说太奇怪了。昨天我想我在iPhone4iOS6设备上也发生过同样的故障。今天我试着在模拟器中运行我的应用程序,当我调用pushViewController时,它确实崩溃了。下面是使其崩溃的代码 PFObject *selectedGame = [self.myTurnList objectAtIndex: index]; [self.myTurnList removeObjectAtIndex:index]; UIStoryboard *storyboard =

这对我来说太奇怪了。昨天我想我在iPhone4iOS6设备上也发生过同样的故障。今天我试着在模拟器中运行我的应用程序,当我调用pushViewController时,它确实崩溃了。下面是使其崩溃的代码

    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完成工作。