了解 Interface Builder 中的 Outlets
Posted
技术标签:
【中文标题】了解 Interface Builder 中的 Outlets【英文标题】:Understanding Outlets in Interface Builder 【发布时间】:2011-12-01 11:31:20 【问题描述】:我正在做一个练习,试图真正理解 Interface Builder 和 Outlets。
使用 Xcode 4.0 我为基于窗口的应用程序选择了模板。然后我:
进入 Interface Builder 并添加 UINavigation Controller。
将 Window Outlet RootView Controller 设置为 Navigation Controller。
转到 AppDelegate.h 创建一个 UINavigation Controller,名为 navController 并给它一个 IBOutlet。
去AppDelegate.m中的didFinishLaunchingWithOptions进行设置 self.window.rootViewController 到 self.navController。
创建一个名为 FirstViewController 的新 UIViewController 完成 带有 .xib 文件。
我的问题是,如何将 mainWindow.xib 插座中的根视图控制器设置为 FirstViewController?但更重要的是,有人可以向我解释一下你这样做的原因吗?
换句话说,我希望 FirstViewController 成为用户在我的应用程序中看到的第一个视图控制器。我想确切地了解实现这一点的机制。
感谢大家的帮助!
【问题讨论】:
【参考方案1】:interface bilder's outlets 只是程序的图形部分和代码之间的链接。换句话说,他们解释了控制这个图形对象的代码。你看,objective-c 是非常面向 MVC 的。 .xib 文件是 V(view)、outlet 和您的代码,通过这个 outlet 与 .xib 链接 - 是 C(controller)。 M(model) 应该在你的代码中的某个地方。
现在,关于根视图控制器。我更喜欢像下面这样实现它: 将您的 firstViewController 导入 AppDeledate.h 并实现 navigationController:
#import "firstViewController .h"
@class firstViewController
...
UINavigationController *navigationController;
...
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
现在,在 interfacebuilder (mainWindow.xib) 中,添加 navigationController 对象并将其与已实现的属性链接。然后,在该导航控制器中添加一个 ViewController 对象,选择此 ViewController 对象并在检查器中将其类设置为firstViewController
,并将 xib 文件设置为firstViewController
。最后,在 AppDelegate.m 中的 didFinishLaunchingWithOptions
中将 self.window.rootViewController
设置为 self.navigationController
。就是这样。
【讨论】:
以上是关于了解 Interface Builder 中的 Outlets的主要内容,如果未能解决你的问题,请参考以下文章
Interface Builder 中的圆角标签...? [复制]
Interface Builder中的UIScrollView不滚动
Purelayout™ 可以通过 Interface Builder 使用吗?