在另一个UIView之上添加带有自己的UIViewController的UIView

时间:2013-03-18 05:17:14

标签: ios objective-c uiview uiviewcontroller

我想在另一个UIView之上调出UIView。我希望这样做,以便子视图将拥有自己的UIViewController。这可能吗?

所以我应该可以在子视图中添加一个按钮:

UIButton *closeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
...
[closeButton addTarget:self action:@selector(closeMe) forControlEvents:UIControlEventTouchUpInside];

closeMe是子视图的ViewController中的一个方法。

在我的测试代码中,当用户点击关闭按钮时,它会与未定义的选择器崩溃,因为父视图的ViewController没有closeMe方法。

编辑:

抱歉,我仅提到closeMe方法作为示例。我需要使用这个子视图支持许多其他方法(例如,处理视图旋转),并且我的子视图具有自己的ViewController的目标是封装。

4 个答案:

答案 0 :(得分:1)

- >使用自定义视图制作您的ChildView,该视图是UIView的子类 - >在视图中将此自定义视图添加为子视图
- >然后使用Protocol来完成任务。

答案 1 :(得分:0)

你想要创建一个modalView吗?

这是modalViews的一个直接示例:http://timneill.net/2010/09/modal-view-controller-example-part-1/

我还想做的是在NSMutableArray中弹出我的所有viewControllers并使其成为一个属性(非原子,保留),这样您就可以通过分层方法从应用程序中的任何位置轻松访问它们。

答案 2 :(得分:0)

我认为您的子视图是自定义视图,然后您可以使用委托/协议。你不想要单独的视图控制器。

Check this

答案 3 :(得分:0)

视图控制器和视图具有并行层次结构。您可以将视图控制器添加为彼此的子视图。您的父视图控制器可以加载其子视图控制器,然后在其自己的视图中安装其子视图控制器的视图。

UIViewController  --→  UIView
       ↑                 ↑
       | parent vc       | superview
       |                 |
UIViewController  --→  UIView

但如果您只是添加子视图,则可能不需要子视图控制器。