3

在我的应用程序中,我有两个屏幕 - 第一个显示用户个人资料,第二个屏幕 - 编辑个人资料信息。它们是相似的。我已经完成了第一个屏幕的 xib 文件。

在第二个屏幕上重复使用它的最佳方法是什么?

4

4 回答 4

3

您应该将相关元素封装为自定义视图类。您可以通过使用代码而不是 xibs 创建视图来解决这个问题,我会推荐这个。

但是,如果您更喜欢使用 xib,您可以创建一个模拟您想要重用的东西的模型。然后在您的视图控制器中调用如下代码:

UIView* aView = [UIView alloc] initWithFrame .....];
[[NSBundle mainBundle] loadNibNamed:@"MyReusableComponent" owner:aView options:nil];
UILabel* someLabel = aView.injectedLabel; //this is alive after loading the xib
[self.view addSubView:aView];

创建 xib 时,您需要将 Files Owner 设置为一个类,该类将响应将注入的属性的设置器。(例如你的新视图类)。这样您就可以连接参考。

有关更多信息,请查看 Apple 从 xib 加载表格单元格的示例 - 这是相同的技术。当您加载 xib 并指定所有者时,它会将 xib 中的值注入所有者,在本例中为自定义视图。

在此处输入图像描述

于 2013-01-12T14:42:05.277 回答
0

您的意思是您进入视图控制器的编辑模式并重用您创建的那些元素吗?

在视图控制器中启用编辑模式

于 2013-01-12T14:27:13.310 回答
0

您可以使用更改外观UITextField的 s(而不是UILabel逻辑上用于显示的 s),然后打开enabled/关闭。作为一个最小的例子:

显示

self.textField.borderStyle = UITextBorderStyleNone;
self.textfield.enabled     = NO;

编辑

self.textField.borderStyle = UITextBorderStyleBezel;
self.textfield.enabled     = YES;

你当然可以在外观上做更多的事情,而不仅仅是这些基础知识。

于 2013-01-12T13:37:18.707 回答
-1

在 Xcode 中:转到文件 > 重复。

然后将重复的 xib 命名为“editProfile”之类的名称,这将提供第一个 xib 的副本,您可以根据需要进行调整

于 2013-01-12T13:37:59.020 回答