我在一个 TableView 中有一组静态单元格,我有 3 个这样的单元格(A、B、C)都设置了 segues,这些 segues push
相同的 ViewController 到屏幕上;这很好用!
我想要的是一种让 View Controller 识别单击了哪个单元格的方法:通过这种方法,ViewController 可以改变它呈现的内容。具体来说,我希望根据单击的单元格将 viewController 中的一个 int(比如说)设置为特定值
我猜我错过了一些东西
- (void) prepareForSegue 方法
?
非常感谢任何帮助
以下代码在我的 View Controller 中
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"segue1"]){
selectedSegue = 1;
} else {
selectedSegue = 2;
}
NSLog(@"Selected Segue: %d", selectedSegue);
}
selectedSegue 总是返回 0;
我也在 Storyboard中设置了 Segue 标识符
最佳答案
我想你快到了。检查以下 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
集:
单击两个 View Controller 之间的 segue 行,并在 Attributes Inspector 中设置标识符。
关于iOS - 转场和静态单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818122/