【问题标题】:How to link Interface Builder views如何链接 Interface Builder 视图
【发布时间】:2010-03-12 00:36:14
【问题描述】:

我试图弄清楚如何将我在界面构建器中创建的所有视图与导航控制器链接,但我发现这个概念有点难以掌握。

我查看的所有示例代码都显示了如何使用存储所有控制器的数组来执行此操作,我发现很难适应我的项目,因为我的视图完全是在 IB 中构建的,而不是在 xCode 中构建的。

提前致谢。

【问题讨论】:

    标签: objective-c iphone xcode interface-builder


    【解决方案1】:

    一般来说,导航控制器会维护一堆视图控制器,您可以在其中推送和弹出这些视图控制器。如果您在将导航控制器从库中拖到应用程序窗口时使用 IB,它实际上会添加许多对象,包括将充当根视图控制器的 UIViewController。将该根视图控制器的类更改为您的第一个视图控制器的类。

    您可以创建额外的视图控制器(我会将这些其他视图控制器放在单独的 NIB 文件中),然后当您想让它们可见时将它们推送到视图控制器堆栈上。您不需要将它们链接到 IB 中的导航控制器。

    例如,要将新的视图控制器推送到堆栈上,您将有一些类似这样的代码(视图控制器是从 DetailView.xib 加载的:

    DetailViewController *viewController = [[DetailViewController alloc]    
                initWithNibName:@"DetailView" bundle:nil];
    
    viewController.someAttribute = someValue;
    
    [[self navigationController] pushViewController:viewController animated:YES];
    [viewController release];
    

    如果您使用的是 UITableViewControllers,您可以将此代码放在 didSelectRowAtIndexPath:indexPath 方法中,以便在用户选择表中的一行时出现新的视图控制器。

    当用户点击后退按钮时,导航控制器将负责弹出顶视图控制器,或者您可以通过调用 popViewControllerAnimated 自己弹出它:

    [[self navigationController] popViewControllerAnimated:YES]  
    

    【讨论】:

    • 推送和弹出的过程是什么。你能给出一个快速的代码示例吗?干杯队友
    • @daniel-hanly 我添加了一个关于如何推送和弹出视图控制器的简短示例。希望对您有所帮助。
    猜你喜欢
    • 2010-12-16
    • 2012-05-08
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多