想要两种方式来访问视图控制器,但只有一种方法

时间:2014-05-14 08:24:33

标签: ios objective-c storyboard

我正在创建一个iOS应用程序,用户在主菜单中启动(见图)。

当用户单击button1时,它会触发一个segue(1),将他带到配置向导。另一方面,单击button2会将用户带到配置列表(显示已设置的内容),这也使用segue(2)。这两个视图控制器都有一个后退按钮,通过调用

将用户带回主菜单
[self dismissViewControllerAnimated:YES completion:nil];

我现在正在努力实现,是一种从配置向导转换到配置列表的方法。

当用户在向导中做出选择并按下保存按钮时,我希望这会将他直接带到配置列表视图。同时,向导视图控制器应该“忘记”,即当用户现在按下后退按钮2时,它仍然应该将他带回主菜单。这意味着我不能只是从向导触发列表中的segue,因为向导仍然会在列表视图“后面”,并且在按下后退按钮2时会变为可见。

有关如何顺利实施此方法的任何想法? storyboard

2 个答案:

答案 0 :(得分:2)

您可以将配置向导中的segue添加到配置列表中。为了避免返回配置向导存储主菜单ViewController指针并说出popToViewController API进行导航。

正在使用popToViewController的代码示例。

NSArray * controllerArray = [[self navigationController] viewControllers];

for (UIViewController *controller in controllerArray){
    //Code here.. e.g. print their titles to see the array setup;
    //NSLog(@"%@",controller.title);
    if ([controller.title isEqual:@"ViewTitle"]) {
        [self.navigationController popToViewController:controller animated:YES];
    }
}

希望这有帮助。

答案 1 :(得分:1)

在配置向导屏幕上,使用按保存

[self.navigationController pushViewController:listOfConfigurationViewController animated:YES];

目前,你的筹码是:

 Main View Screen -> Configuration Wizard Screen -> List Of Configuration Screen

使用时按下配置屏幕列表中的按钮

// you will come back to Main Screen View
[self.navigationController popToRootViewControllerAnimated:YES];