Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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_Ios_Objective C_Segue_Modalviewcontroller_Viewcontroller - Fatal编程技术网

应用程序试图以模态方式呈现活动控制器ios

应用程序试图以模态方式呈现活动控制器ios,ios,objective-c,segue,modalviewcontroller,viewcontroller,Ios,Objective C,Segue,Modalviewcontroller,Viewcontroller,在显示ViewController可以提供回调之前,我试图使用父视图控制器设置ViewController,我使用prepareforsgue - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"newQuarter"]) { [segue.destinationViewController s

在显示ViewController可以提供回调之前,我试图使用父视图控制器设置ViewController,我使用
prepareforsgue

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"newQuarter"])
    {
        [segue.destinationViewController setParentViewController:self];
    }
}
它崩溃了,并显示错误消息:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“应用程序试图以模态方式呈现活动控制器。

所以我尝试使用另一种方法,在按钮润色上设置一个新的视图控制器

- (IBAction) buttonClicked
{
    NewViewController *newController = [[NewViewController alloc] init];
    [newController setParentViewController:self];

    [self presentViewController:newController animated:YES completion:nil];
}

但运气不好,它仍然给我同样的错误信息,有人能给我一些建议吗?谢谢

解决了该问题,因为父视图控制器是一个
tableViewController
,它嵌入在
navigationViewController
中。这就是为什么应该推动segue而不是执行模态转换的原因。

我也有同样的问题,Matthew的解释似乎是正确的

替换:

[self presentViewController:newController animated:YES completion:nil];
与:

这一行:

[self presentViewController:newController animated:YES completion:nil];
将执行模态序列,这是产生错误的原因

改为使用此行:


通过将新的视图控制器“推”到导航控制器堆栈上执行segue(在XCode 6及更高版本中,这与在故事板上定义segue类型的“show”相同)。这就是为什么您在使用导航控制器时需要它。

可能重复@carlvaezey这不是“应用程序试图以模态方式呈现活动控制器”的重复。谢谢你的建议D
[self presentViewController:newController animated:YES completion:nil];
[self.navigationController pushViewController:newController animated:YES];