2013-03-10 76 views
0

我會嘗試做出自己的popover(在iPhone,iOS6上),我需要在其他ViewController的子視圖中顯示ViewController。沒關係 - 我創建了ViewController類與XIB接口,並添加了一個按鈕和連接的動作,返回一些NSLog。我加載這個ViewController如下:如何處理其他ViewController視圖中的ViewController?

PopoverViewController *popover = [[PopoverViewController alloc] initWithNibName:@"PopoverViewController" bundle:nil]; 

[self.view addSubview:popover.view]; 

它的工作 - viewPopoverViewController是可見ViewController,但是當我點擊按鈕,這是PopoverViewController子視圖,然後我有EXC_BAD_ACCESS錯誤行:

0x3968a5b0: ldr r3, [r4, #8] 

如何處理它,以及如何正確顯示第二個視圖控制器?

謝謝你的幫助。

+1

您是否使用ARC?最有可能的是'popover'視圖控制器正在被釋放,因爲你沒有在任何地方保存對它的引用。 – rmaddy 2013-03-10 22:01:25

+0

按鈕的動作是什麼?你有可能把它連接到一個不存在的動作上。 – Rikkles 2013-03-10 22:07:52

+0

我正在使用ARC並存在操作。 – 2013-03-10 22:16:08

回答

2

如果您使用的是ARC並且您沒有對PopoverViewController保留強有力的引用,那麼即使您將其視圖添加到另一個視圖,視圖控制器也將被解除分配。然後,當您在彈窗視圖中點擊按鈕時,按鈕的目標消失,應用程序崩潰。

要麼添加一個實例變量,以保持對PopoverViewController的引用或更好的更新您的視圖控制器的代碼,以正確地成爲一個容器視圖控制器。你真的不應該只是添加一個視圖控制器的視圖到另一個視圖控制器的視圖。請參閱文檔UIViewController以瞭解創建容器視圖控制器的正確方法。

+0

謝謝,我會讀一讀。 – 2013-03-10 22:15:07

+0

我在'ViewController'界面中聲明瞭'PopoverViewController'類的對象,現在它正在工作。 – 2013-03-10 22:17:46

相關問題