iOS - 转场和静态单元格

标签 ios uiviewcontroller uinavigationcontroller segue uistoryboardsegue

我在一个 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 集:

Xcode Storyboard

单击两个 View Controller 之间的 segue 行,并在 Attributes Inspector 中设置标识符。

关于iOS - 转场和静态单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818122/

相关文章:

ios - 从 Facebook 确定应用程序的安装

ios - 如何使用 IndexPathsForSelectedRows?

ios - 在 UITabbarController 中使用 UINavigationController

ios - 导航栏颜色设置不正确

iOS Swift 2 - 失败时 Alamofire 打印响应值

ios - 根据所选选项,在不同的 View Controller 中使用相同的文本字段数据进行计算

cocoa-touch - 如何定位UIView?

ios - 在另一个 View Controller 中显示 View Controller 时如何防止闪烁

ios - 将当前导航 Controller 替换为另一个导航 Controller

ios - 如何处理两个容器 View 内的两个 Collection View