编程UIViewControllers循环使用ios和storyboard

时间:2012-05-26 15:37:30

标签: ios ios5 uinavigationcontroller storyboard

我刚刚开始使用IOS 5和故事板进行ios开发,并想知道如何解决以下问题:

我有一个树层次结构,其中的产品是树的节点,产品是树叶。我创建了一个TileViewController视图来显示特定级别的所有节点。当用户在TileView中选择一个节点时,根据其类型(leaf或not-leaf),我将新的TileViewController推送到应用程序NavigationController中,或者我显示一个DetailViewController。

我目前所做的是以编程方式执行所有操作(我的意思是跟踪用户在TileViewController中单击的内容并决定在NavigationController中接下来要推送的内容)。我得到了故事板上的句柄,如果需要,可以使用下面的代码创建下一个TileViewController。

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        TileViewController *controller =  [storyBoard instantiateViewControllerWithIdentifier:@"TileViewController"];
        controller.model = self.model;   
        [self.navigationController pushViewController:controller animated:YES];

我无法弄清楚如何使用故事板而不是TileViewController中的硬编码逻辑来实现。这是可能吗?我想过使用一个TileViewController,只是根据用户选择重新加载显示的瓷砖,但后来我丢失了导航片。我有什么想法可以实现这个目标吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

你可以从任何UI组件开始定义一个segue导航,回到故事板中的同一场景 - 所以如果它来自一个按钮,则按住ctrl-从按钮向下拖动到代表tile视图控制器的黄色球体。

将其定义为push segue,然后传递prepareForSegue中的相关详细信息。这将创建一个潜在的无限导航堆栈,而不必在故事板中重复自己。