ios - 使用 prepareforsegue 的 XCode 5 调用类

标签 ios

我有一个位于容器 View 中的 TableView 。当用户选择任何行时,在父 Controller 中调用一个方法,它告诉父 Controller 执行一个 segue。但是,我无法弄清楚为什么它不起作用。从 tableView 中的 didSelectRow 函数调用代码。该方法确实执行了,但它给了我一个关于没有使用该标识符的 segue 的错误。

但是,当我从父 View Controller 中调用方法 (listJobsOfSite) 时,它起作用了。

(表格 View )

   -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.jobVC listJobsOfSite:@"locPwn"];
}

父 View Controller

-(void)listJobsOfSite:(NSString *)site
{
    [self performSegueWithIdentifier:@"JobSegue2" sender:nil];
}

编辑: segue 在 View Controller 1 和 View Controller 2 之间。 View Controller 1 包含一个容器 View ,它又包含一个 TableView Controller 。这个 tableview controller 应该告诉 view controller 1 进入 view controller 2。

编辑 2: 截图 http://tinypic.com/r/30x7dr9/8

最佳答案

  1. 您不调用类。您正在寻找的词是“方法”。您调用您的父 View Controller 中的listJobsOfSite方法

  2. 你确定你已经给 segue 一个标识符了吗?在您的 Storyboard 中,您应该点击 segue,检查它,然后在标记为“Identifier”的字段中输入“JobSegue2”。

  3. 如果您已完成第 2 步,是否需要容器 View ?你想用 Container View + TableView 完成什么?听起来如果没有容器 View 和 TableView 作为 View Controller 1 的属性,您的设计会更有意义。

如果您决定使用容器 View ,请在您的 Storyboard 中尝试按住 Control 并从您的 TableView 单元格拖动到您的 View Controller 2。将该 segue 命名为“JobSegue2”。然后你不需要在你的 didSelectRow 方法中调用任何方法。您也不需要从 View Controller 1 到 2 的 Storyboard segue。它看起来像 this question有你想要的行为(问题,而不是答案!他的问题与你相反)。

编辑:刚刚注意到您的容器 View 中有一个导航 Controller ,所以我上面的建议可能会将 View Controller 2 推送到容器 View 中。我对你想要做的事情完全感到困惑。

关于ios - 使用 prepareforsegue 的 XCode 5 调用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22896721/

相关文章:

ios - 游戏中心在 iPhone 模拟器中工作,但在 iPad 上不工作 - Swift 4

ios - 为什么 Xcode 4.2 在 main.m 中使用 @autoreleasepool 而不是 NSAutoreleasePool?

iOS iPhone - 在 keyboardWillShow 之前获取 UIKeyboard 高度

ios - 错误的 JPEG 库版本 : library is 80, 调用者期望 70

ios - 将数据解析回 View Controller

iphone - 单击作为 subview 添加到 UILabel 的 UIButton 将打开远离按钮的弹出窗口。?

ios - 每个 .xib 文件都必须有自己的 .h 和 .m 文件吗?

ios - 'UINavigationController ?' does not have a member named ' 导航栏'

c++ - 为 iOS7 编译 BlueZ?

ios - 如何删除表格 View 单元格之间的黑线?