【问题标题】:Change views via code using xcode 4.2 and storyboard?使用 xcode 4.2 和情节提要通过代码更改视图?
【发布时间】:2012-03-04 02:58:04
【问题描述】:

我将如何使用 xcode 4.2 和情节提要通过代码更改视图? 单击动态表视图单元格后,我正在尝试更改视图。 由于它是动态的,我不能只将它与 segue 联系起来......

我已尝试按照有关 Stack Overflow 的另一篇文章的建议使用此代码进行更改,但它不起作用:

 UIViewController *alertView = [self.storyboard instantiateViewControllerWithIdentifier:@"alertView"];
[self.navigationController pushViewController:alertView animated:YES];

这是我的代码的sn-p,希望对您有所帮助!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.row==0){
     UIViewController *alertView = [self.storyboard instantiateViewControllerWithIdentifier:@"alertView"];
[self.navigationController pushViewController:alertView animated:YES];
    NSLog(@"This code is being called...");
}

【问题讨论】:

  • “由于它是动态的,我不能只将它与 segue 链接......”嗯,是的,你可以 - 只需 ctrl-drag 从原型到下一个视图控制器。你试过这个但没有运气吗?

标签: iphone objective-c ios ipad


【解决方案1】:

在您的故事板中创建一个从您的UITableViewController 到您的alertView 的segue。确保您通过控制从控制器(在第一响应者图标旁边)拖动到您的alertView 而不是从表格单元格或类似的东西拖动来做到这一点。选择 segue 类型的“Push”。点击 segue 的属性,并确保给它一个标识符,如AlertViewSegue

现在您可以使用如下代码以编程方式调用您的 segue:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if(indexPath.row==0){
        [self performSegueWithIdentifier:@"AlertViewSegue" sender:self];
    }
}

【讨论】:

    【解决方案2】:

    这是更好的故事板教程之一,它恰好使用了表格视图。

    http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

    【讨论】:

    • 如果我不清楚,我想知道当用户点击动态表格视图单元格时如何切换视图。我已经知道如何使用数组制作动态表格视图。我浏览了教程并下载了源代码,但仍然没有清除任何内容,因为当您单击动态单元格时没有任何反应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2017-03-26
    • 1970-01-01
    • 2011-12-07
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多