我正在尝试使用UINavigationViewController编写应用程序。我的第一个屏幕上有几个按钮,点击每个按钮,我想要转到UIViewController。我知道我可以在每个按钮上添加一个segue,都指向我想去的UIViewController,但我想知道是否可以只使用一个可以从每个按钮触发的segue。
如果那是不可能的,我想知道是否可以在第一个按钮点击时打开第二个UIViewController,并提供像UINavigationView提供的后退按钮。除了后退按钮之外,我确实设法使这个想法得以实现。我的意思是我可以在屏幕上的某处放一个标准按钮然后返回,但我喜欢UINavigationView上的标准后退按钮。
唷!我不确定这是否有意义。
我知道我也可以使用tableview,但我试图用按钮设置它。
由于
编辑:谢谢所有回答的人。我现在有这个工作。我会投票给答案,但我没有足够的帖子去做。我很感激答案!
答案 0 :(得分:1)
如果您需要为每个按钮分别设置动作功能,建议您从主控制器切换到另一个控制器并创建一个segue标识符(请参阅下面的xcode程序);然后,使用每个按钮动作函数中的performSegueWithIdentifier。您还可以利用prepareForSegue。要创建segue,请从故事板中控制器中的左按钮控制拖动到要切换到的控制器并选择显示。
检查swift中的示例代码,我在SO参考中发现了一个非常类似的问题
Linking View Controllers through button
您可以将主控制器嵌入导航控制器中,这样您就可以返回导航。如果你有多个图层,你也可以使用展开segue。
答案 1 :(得分:0)
将每个按钮链接到该ViewController中的单个动作(例如buttonClick),然后使用self.navigationController上的pushViewController方法执行相应的segue
-(IBAction)buttonClick:(id)sender {
if(sender.id == self.button1) {
DestinationViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"VC_IDENTIFIER"];
[self.navigationController pushViewController:vc animated:YES];
}
或者,如果您已经在故事板中定义了1个segue,则可以使用
[self performSegueWithIdentifier:@"SegueIdentifier" sender:self];
并在buttonClick方法中使用它。使用第一个示例或第二个示例,只要您在故事板中设置的segue是推送,那么您应该已经获得后退按钮,因为这是将视图控制器推送到导航堆栈的默认行为。