iPhone - 连接UIView和子UIViewController

时间:2011-01-24 22:09:26

标签: iphone uiviewcontroller interface-builder

这是我的实验:

1。 我想要做的是手动管理我的应用程序导航,所以我设置

[self.navigationController setNavigationBarHidden:YES];

2。 我创建了一个MyFormControllerView,它实际上是一个联系表单,将用于添加和编辑联系人。现在,当添加联系人时,我的自定义导航栏将有不同的按钮,然后在编辑时,我创建了AddMyFormControllerView和EditMyFormControllerView。

3。 这是有趣的部分。我想从AddMyFormControllerView和EditMyFormControllerView显示一个自定义标题(在这种情况下是一些按钮),下面我想显示MyFormControllerView。

问题: 我假设我应该通过UIViewController连接/包含MyFormControllerView和/到其他控制器,但我没有运气。我该怎么做?请注意,我希望尽可能使用“界面”构建器。

是的......我知道没有必要再有两个控制器来实现这一目标。我的问题只是如何将视图连接在一起。

enter image description here

2 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的问题,但这就是我认为你应该做的事情。

没有MyFormControllerView,然后嵌入其他视图控制器 - 太乱了,增加了不必要的复杂性。如果您使用的是UINavigationController,就像使用AddMyFormControllerView和EditMyFormControllerView一样,但在视图控制器的-viewWillAppear:方法中,添加[self.navigationController setNavigationBarHidden:YES];(就像您现在一样)。所有这一切都隐藏了导航栏;关于导航控制器行为的其他一切都是相同的(当然,除非您必须允许用户在视图之间切换,您使用自定义标头)。

对于自定义标题,只需将其添加为AddMyFormControllerView和EditMyFormControllerView的子视图,就像添加任何其他视图一样。

答案 1 :(得分:-1)

MyFormControllerView,您可以推送至EditMyFormControllerView,您可以按模式AddMyFormControllerView展示。

Push

MyFormControllerView *mfcv = [[MyFormControllerView alloc] initWithNib:@"MyFormControllerView" bundle:nil];
[self.navigationController pushViewController:mfcv animated:YES];

Present Modally

EditMyFormControllerView *emfcv = [[EditMyFormControllerView alloc] initWithNib:@"EditMyFormControllerView" bundle:nil];
[self.navigationController presentModalViewController:emfcv animated:YES];