0

我在 中声明了两个不同的 push seguemyview1以显示myview2. 从两个不同的按钮动作调用两个不同的 push segue。它显示myview2.

myview2我弹出navigationcontrollermyview1按钮动作。

我在 ios7 中遇到错误,但在以前的 iOS 版本中它的工作:

嵌套推送动画可能导致导航栏损坏

在意外状态下完成导航转换。导航栏子视图树可能会损坏。

我的观点2:

- (IBAction)saveButtonPressed:(id)sender {

if ([self.addString isEqualToString:@"ADD"]) {
    NSLog(@"11111111add save");
    Xen_ViewController *viewcontroller = [[Xen_ViewController alloc] init];
    DOING some method calling.....
    //[self.navigationController popViewControllerAnimated:YES];
}
else if ([self.addString isEqualToString:@"UPDATE"]){
    NSLog(@"222222222update save");
    Xen_ViewController *viewcontroller = [[Xen_ViewController alloc] init];
    DOING some method calling.....
    .....
}
[self.navigationController popViewControllerAnimated:YES];

我的观点1:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"CallingConfigurationEdit"]){
    //UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
    Xen_ConfigurationViewController *controller = segue.destinationViewController;
     controller.addString = @"ADD";
}

if ([segue.identifier isEqualToString:@"Updation"])
{
    Xen_ConfigurationViewController *controller = segue.destinationViewController;
    controller.updateString = self.string;
    controller.addString = @"UPDATE";
}

}

我该如何克服这个错误?

4

1 回答 1

2

您收到该错误是因为您声明了两个不同的推送序列。你的情况没有必要这样做。只声明一个 push segue,不要忘记给它一个标识符。我已经测试了您的代码并且工作得很好,请记住,您在 saveButtonPressed 方法的 if 语句中执行的任何方法调用最终都会弹出当前的 viewController,您将回到 MyView1 控制器。

于 2013-10-04T11:37:14.583 回答