2013-03-18 120 views
0

我想调出另一个UIView上的UIView。我想这样做,以便子视图将有自己的UIViewController。这可能吗?使用自己的UIViewController在另一个UIView的顶部添加UIView

所以我应该能够一键添加到子视图:

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

closeMe是在子视图的视图控制器的方法。

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

编辑:

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

+0

您可以使用[childview removeFromSupreview] – 2013-03-18 05:21:29

+0

删除子视图如果您将孩子作为目标而不是放置“self”,会发生什么情况? – Jsdodgers 2013-03-18 05:24:29

+0

将addTarget:参数更改为视图控制器实现该方法的任何一个closeMe – Dos43 2013-03-18 05:24:58

回答

1

- >让您的ChildView使用UIView子类的自定义视图。
- >将此自定义视图作为子视图添加到您的视图中
- >然后使用Protocol来实现您的任务。

+1

经过进一步的学习,我认为没有好的办法去做我想做的事情。我认为这个答案是最好的答案,所以我会将其标记为正确的。谢谢。 – Steven 2013-03-19 04:15:57

+0

@BaZinga:+1投票权和简短的回答:) – 2013-03-19 05:37:39

+0

感谢并相信我,我没有看到你的答案。@ρяσѕρєяK :) – KDeogharkar 2013-03-19 05:38:39

0

它像你想创建一个modalView的创伤?

这里的modalViews的直线前进例如:http://timneill.net/2010/09/modal-view-controller-example-part-1/

我也喜欢做的是弹出所有我viewControllers的一个NSMutableArray中,使一个属性(非原子,保留),这样你可以很容易地从漂亮访问它们通过分层手段在应用程序的任何地方。

+0

我没有在我的原始文章中指定这个,但我不想要模态演示文稿。 – Steven 2013-03-19 04:15:13

0

我认为你的子视图是一个自定义视图,那么你可以使用委托/协议。你不想单独的视图控制器。

Check this

0

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

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

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