我想在另一个UIView
之上调出UIView
。我希望这样做,以便子视图将拥有自己的UIViewController
。这可能吗?
所以我应该可以在子视图中添加一个按钮:
UIButton *closeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
...
[closeButton addTarget:self action:@selector(closeMe) forControlEvents:UIControlEventTouchUpInside];
closeMe
是子视图的ViewController中的一个方法。
在我的测试代码中,当用户点击关闭按钮时,它会与未定义的选择器崩溃,因为父视图的ViewController没有closeMe
方法。
编辑:
抱歉,我仅提到closeMe
方法作为示例。我需要使用这个子视图支持许多其他方法(例如,处理视图旋转),并且我的子视图具有自己的ViewController的目标是封装。
答案 0 :(得分:1)
- >使用自定义视图制作您的ChildView,该视图是UIView的子类
- >在视图中将此自定义视图添加为子视图
- >然后使用Protocol
来完成任务。
答案 1 :(得分:0)
你想要创建一个modalView吗?
这是modalViews的一个直接示例:http://timneill.net/2010/09/modal-view-controller-example-part-1/
我还想做的是在NSMutableArray中弹出我的所有viewControllers并使其成为一个属性(非原子,保留),这样您就可以通过分层方法从应用程序中的任何位置轻松访问它们。
答案 2 :(得分:0)
我认为您的子视图是自定义视图,然后您可以使用委托/协议。你不想要单独的视图控制器。
答案 3 :(得分:0)
视图控制器和视图具有并行层次结构。您可以将视图控制器添加为彼此的子视图。您的父视图控制器可以加载其子视图控制器,然后在其自己的视图中安装其子视图控制器的视图。
UIViewController --→ UIView
↑ ↑
| parent vc | superview
| |
UIViewController --→ UIView
但如果您只是添加子视图,则可能不需要子视图控制器。