2013-03-18 119 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 

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