gpt4 book ai didi

iphone - 如何将通用(NSObject) Controller 与 UIViewController 的 subview 一起使用?

转载 作者:行者123 更新时间:2023-12-03 19:42:52 27 4
gpt4 key购买 nike

我有一个 UIViewController,它根据用户交互在不同时间加载多个 subview 。我最初在代码中构建了所有这些 subview ,没有 nib 文件。现在我正在转向带有自定义 UIView 子类的 nib 文件。

其中一些 subview 显示静态数据,我使用 loadNibNamed:owner:options: 将它们加载到 View Controller 中。其他包含我需要访问的控件。

我(有点)理解苹果说每个屏幕内容使用一个 View Controller 的原因,使用通用 Controller 对象(NSObjects)来管理屏幕的各个部分。

所以我需要一个 View Controller 、一个通用 Controller 、一个 View 类和一个 Nib 。我如何将这些放在一起?

我的工作假设和后续问题:

  • 我会将 View 类与“类(Class)身份”掉落中的 Nib IB 下降。
  • View Controller 将协调整体画面交互。什么时候必要时,它将创建一个实例通用 Controller 。
  • 通用 Controller 是否加载 Nib ?怎么办?
  • 我是否定义 channel 和行动在那个 View 类中,或者它们应该是在通用 Controller 中?
  • 如何在 View Controller 和通用 Controller ?

如果有人可以向我指出一些以这种方式使用 Controller 的示例代码,这将有助于我理解。我读过的书籍或 stackoverflow 帖子都还没有完全切中要害。

最佳答案

好吧,我想我已经明白了:

  1. 扩展 NSObject 来创建您的 CustomController
  2. 在 CustomController.h 中定义您的导出和 Action ,包括对 nib 中 UIView 的引用
  3. 将 Nib 的文件所有者设置为 CustomController
  4. 照常连接所有 socket 和操作,包括 UIView socket
  5. 在 CustomController.m init 中,加载 Nib

- (id)init {
self = [super init];
if (self != nil)
[self loadNib];

return self;
}

- (BOOL)loadNib {
NSArray *topLevelObjs = nil;
topLevelObjs = [[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:self options:nil];

if (topLevelObjs == nil) {
NSLog(@"Error! Could not load nib file.\n");
return NO;
}
return YES;
}

基于 NSObject 的新 Controller 的工作方式与 View Controller 非常相似。

关于iphone - 如何将通用(NSObject) Controller 与 UIViewController 的 subview 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399586/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com