我有一个UItableView,我想在其他视图控制器上移动。为了做到这一点,其他建议以及我之前做的是将一个segue从表格视图单元格拖放到其他视图并设置一个segue标识符。
我知道这种方式并且在许多情况下工作正常,但我的细胞数量很大或者可能是基于数据生成的。所以我不能用视图控制器连接每个单元格,并设置segue及其标识符,所以请。
我问的是有没有办法以编程方式创建segue b / w到视图?
我认为UIstoryboardSegue类可以解决这个问题,但它的工作原理可以指导我。
答案 0 :(得分:1)
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
{
// Set the title of navigation bar by using the menu items
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UINavigationController *destViewController = (UINavigationController*)segue.destinationViewController;
destViewController.title = [[menuItems objectAtIndex:indexPath.row] capitalizedString];
if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] ) {
SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue;
swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
[navController setViewControllers: @[dvc] animated: NO ];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
};
}
}
在另一个选择中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (index path.row==0)//just like assign the row index
{
[self performSegueWithIdentifier:@"yourSeguename" sender:nil];
}
}
答案 1 :(得分:1)
您可以从位于故事板视图下方的View Controller按钮连接所有这些segue,而不是从单个单元格连接和创建segue。在这种情况下,您将拥有多个segue,并且它们都不会单独连接到单元格。当segue准备就绪时,您可以使用此方法移动到下一个View Controller,具体取决于从tableView中抽取的单元格。
[self performSegueWithIdentifier:@"yourSegue" sender:nil];
您只需要检查点击了哪个单元格,然后点按即可执行相应的Segue。
希望这有帮助。
答案 2 :(得分:1)
1。 在主View Controller中创建退出segue:
- (IBAction)unwindSegue:(UIStoryboardSegue *)segue
{
// Without naming a segue
if ([segue.sourceViewController isKindOfClass:[MyOtherViewController class]])
// Returning from MyOtherViewController
// Using a segue name
if ([segue.identifier isEqualToString:@"MySegue"])
{
// Do something
}
}
2。 您可以在文档大纲中找到您的segue,如下所示:
3。 从黄色到绿色图标的控制+拖动应显示您的退出segue:
在Interface Builder中连接:
4
为你命名:
称之为:
[self performSegueWithIdentifier:@"MySegue" sender:self];