use*_*673 10 xcode ios5 uistoryboard uistoryboardsegue
我现在开始使用Xcode for 4.2 for iOS5,并且有一些变化,我现在正在解决一个我无法找到解决方法的问题.
我正在用UITablwView做一个例子,它以2个部分编程填充,第1部分只有1行,第2部分有3行.
我的目标是从表中选择一行,并根据该行,用户将被重定向到不同的视图.
例如:选择第0行第0行,app推送查看1 - 名称设置//选择第1行第0行,app推送查看3 - 地址设置
旧方式,这很简单,只需要用initWithNibName初始化一个UIViewController,然后推送视图.
现在随着storyBoard一切都发生了变化,或者至少我认为它发生了变化,因为我无法看到如何获得相同的结果,因为我无法将tableView中的多个segue设置为不同的UIViewControllers ...并且做旧的时尚方式我无法看到我可以从storyBoard上的视图中获取NIB名称以初始化UIViewController来推送.
有没有人知道如何得到这个结果?
Mar*_*rco 25
在源视图控制器的故事板中定义两个"通用"segue(例如,标识为"segue1"和"segue2"),一个到每个目标视图控制器.这些segue不会与任何行动相关联.
然后,有条件地执行你的segues UITableViewDelegate
:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Conditionally perform segues, here is an example:
if (indexPath.row == 0)
{
[self performSegueWithIdentifier:@"segue1" sender:self];
}
else
{
[self performSegueWithIdentifier:@"segue2" sender:self];
}
}
Run Code Online (Sandbox Code Playgroud)
小智 16
我和你有同样的问题.问题是您无法将tableViewCell链接到多个视图控制器.但是,您可以将源视图本身链接到多个视图控制器.
控制 - 将主视图控制器(而不是表视图单元格)从场景查看器拖动到要链接的任何视图控制器.你可以随心所欲地做到这一点.请注意,源视图控制器场景中显示的segue应该类似于"从Root View Controller推送Segue ..."而不是"从NavCell推送Segue到......".
识别每个segue链接的唯一名称,如"toDetailView1"
最后,在源视图控制器中自定义选择:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row % 2 == 1) {
[self performSegueWithIdentifier:@"toDetailView1" sender:self];
} else {
[self performSegueWithIdentifier:@"toDetailView2" sender:self];
}
}
Run Code Online (Sandbox Code Playgroud)