【问题标题】:XCode 5 calling class with prepareforsegue带有prepareforsegue的XCode 5调用类
【发布时间】:2014-04-06 16:25:03
【问题描述】:

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

但是,当我从父视图控制器中调用方法 (listJobsOfSite) 时,它可以工作。

(表格视图)

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

父视图控制器

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

编辑: segue 在视图控制器 1 和视图控制器 2 之间。视图控制器 1 持有一个容器视图,它又持有一个表视图控制器。这个 tableview 控制器应该告诉视图控制器 1 进入视图控制器 2。

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

【问题讨论】:

  • segue 到底是什么?我猜它在父级和下一个 ViewController 之间,而你尝试通过子控制器和下一个 ViewController 来做。我会告诉父母它需要执行转场。
  • segue 在视图控制器 1 和视图控制器 2 之间。视图控制器一持有一个容器视图,它又持有一个表视图控制器。这个 tableview 控制器应该告诉视图控制器 1 进入视图控制器 2。

标签: ios


【解决方案1】:
  1. 你不调用类。您正在寻找的词是“方法”。您调用您的 listJobsOfSite 方法,它在您的父视图控制器 class 中。

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

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

如果您决定使用容器视图,请在您的 Storyboard 中尝试从 TableView 单元中控制 + 拖动到您的视图控制器 2。将该 segue 命名为“JobSegue2”。然后你不需要在你的 didSelectRow 方法中调用任何方法。您也不需要从视图控制器 1 到 2 的故事板 segue。似乎 this question 具有您想要的行为(问题,而不是答案!他遇到了与您相反的问题)。

编辑:刚刚注意到您的容器视图中有一个导航控制器,所以我上面的建议可能会将视图控制器 2 推送到容器视图中。我完全被你想要做的事情弄糊涂了。

【讨论】:

  • 1.是的,感谢您澄清这一点。我会编辑我的帖子。 2-是的,标识符在那里。从父视图控制器中调用该方法有效,但不能从子表视图控制器中调用它。
  • 父视图控制器中有segue代码有什么原因吗?我真的不明白你设计这个的方式,或者为什么你需要从父母那里调用 segue。似乎您想从 TableView 转移到另一个视图,因此 segue 方法应该在您的 TableViewController 中。
  • 我最初确实尝试过。以下崩溃并出现相同的错误。我知道segue就在那里。 - (void)viewDidLoad{ self.jobVC = [[JobViewController alloc] init]; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath [self.jobVC performSegueWithIdentifier:@"JobSegue2" sender:Nil]; }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 2014-09-03
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多