调整UINavigationController ViewControllers NSArray的顺序

时间:2012-11-18 19:10:33

标签: ios uinavigationcontroller segue uinavigationitem

我想用'HomeScreen'启动我的应用程序(在其他一些选项中)显示一个按钮来选择图像并继续使用上一个会话中的某些图像进行编辑。

  • 按钮:选择
  • 按钮:编辑

选择“编辑”时,它会将用户带到编辑视图,使用导航控制器等等 选择“Pick”时,它将显示iOS imagePickerController等。

但是,在选择图像后,我不想返回'HomeScreen'。当UIImagePickerController被解雇时,它需要“揭开”“编辑”视图,就好像它已被插入到'ViewControllers NSArray'中,就在UIImagePickerController下面。

“编辑”阶段的“后退”按钮将始终将用户带回“HomeScreen”,因此即使通过imagePicker进入此屏幕,它仍然必须返回“HomeScreen”< / p>

“HomeScreen”需要作为后退按钮的原因之一是该应用程序将是免费的应用程序,但在HomeScreen可以选择执行IAP以解锁更多功能,更像是“关于”等...

那么......我怎样才能调整导航控制器的顺序

还是有更好的方法从A到B到C再回到A(或从A到C再回到A)

2 个答案:

答案 0 :(得分:0)

在场景的左上角添加一个条形按钮项目为“C”(这将覆盖自动放置在那里的后退按钮)。

接下来为该按钮创建一个IBAction,它执行以下操作:

- (IBAction)goToA:(id)sender {
    [self.navigationController popToRootViewControllerAnimated:YES];
} 

答案 1 :(得分:0)

homeViewController.m内,这只是为segues设置正确的事情: 拖入viewController并将其连接到“Edit”按钮,InterfaceBuilder创建segue并为其指定标识符presentImageEditorViewController。然后像往常一样,在实现文件中设置segue(为方便起见,我跳过设置imagePicker的部分等)。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"presentImagePickerController"]) {
        [segue.destinationViewController setDelegate:self];
        NSLog(@"Presenting ImagePickerController");
    }
    else if ([segue.identifier isEqualToString:@"presentImageEditorViewController"]) {
        NSLog(@"Presenting ImageEditorController");
    }
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSLog(@"Picked some image");
    [self performSegueWithIdentifier:@"presentImageEditorViewController" sender:self];
    [self dismissViewControllerAnimated:YES completion:nil];
}

在imagePicker中选择图像时,它调用委托方法didFinish…并简单地将segue设置为ImageEditorVieController然后取消ImagePickerController,后退按钮将在imageEditor navigationBar

中就好了