iOS - Segues和Static Cells

时间:2013-09-15 22:27:57

标签: ios uiviewcontroller uinavigationcontroller segue uistoryboardsegue

我在TableView中有一组静态单元格,我有3个这样的单元格(A,B,C)都设置了segues push相同的ViewController到屏幕上;这很好用!

我想要的是View控制器识别单击哪个单元格的方法:ViewController可以通过它来改变它所呈现的内容。具体来说,我想在我的viewController中根据单击的单元格将int(比如说)设置为特定值

我猜我错过了什么 - (void) prepareForSegue method

非常感谢任何帮助

以下代码位于我的视图控制器

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
 if ([segue.identifier isEqualToString:@"segue1"]){
    selectedSegue = 1;
 } else {
    selectedSegue = 2;
 }

  NSLog(@"Selected Segue: %d", selectedSegue); 
}

selectedSegue始终返回0;

我也在我的故事板中设置了Segue标识符

1 个答案:

答案 0 :(得分:1)

我想你差不多了。检查prepareForSegue:sender:的以下示例实现(此方法签名甚至可能是问题!

#pragma mark - Storyboard Methods

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([segue.identifier isEqualToString:@"segueOne"]) {

        BBFirstViewController *vcOne = (BBFirstViewController *)segue.destinationViewController;
        vcOne.someProperty = @1;
    }
    else if([segue.identifier isEqualToString:@"segueOne"]) {

        BBSecondViewController *vcTwo = (BBSecondViewController *)segue.destinationViewController;
       vcTwo.someProperty = @2;
   }
}

然后只需在storyboard文件中确保每个segue都设置了identifier

Xcode Storyboard

单击两个视图控制器之间的segue线,并在 Attributes Inspector 中设置标识符。