2011-02-21 20 views
0

在Interface Builder中,我可以在自定義控制器中的按鈕(在我的自定義NIB中)和我放入MainView NIB(即AppDelegate)中的操作方法之間進行連接?背景 - 就理解事情而言,我試圖讓兩(2)個客戶控制器(具有自己的視圖),這樣當iPhone應用程序啓動時,它將啓動View1。但是在View1上有Button,如果你按下它,則會用View2控制器視圖替換View1控制器/視圖。我想了解如何爲主窗口分配一個特定的視圖來顯示AppDelegate包含在我提供的自定義NIB /控制器中。在Interface Builder中可以連接我的自定義控制器中的按鈕和AppDelegate中的操作?

所以我想我應該把代碼作爲應用程序委託代碼中的一個動作(爲了更好或最差)而將視圖(類似於here)交換出來。 (即不在我的view1或view2控制器中)

無論如何,我覺得在IB中從View1按鈕的TOUCH_UP_INSIDE事件拖到MainViewNIB似乎不可能。這是不可能的嗎?所以我再次試圖從一個NIB獲取一個按鈕來觸發另一個NIB(控制器)中的操作方法。

+0

如果您在視圖2中採用視圖1中的值,則可以通過在視圖1中按鈕的單擊操作中聲明視圖控制器來實現。(如果我錯了,請糾正我)。 – Milesh

+0

糾正我,如果我錯了,你想顯示view1到view2的數據?或者您想要顯示 – Milesh

+0

不完全 - 只是有效地試圖通過視圖1上的按鈕觸發將視圖本身換到另一個視圖(即視圖2) – Greg

回答

0

根據我迄今爲止所看到的,在Interface Builder中似乎不可能。讓我知道你是否同意。

我注意到,其他人已經提出了一些方案,但是做正義的具體問題,我問我想我應該建議(暫定)這個答案...

0

在的.xib文件,只能創建連接在這些.xib文件中引用的對象(「真實」對象,如按鈕,標籤等或「代理」對象,如文件所有者)之間。

如果您設置的.xib文件所有者應用程式委派的子類,並調用此代碼加載筆尖:

[[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:myAppDelegate options:nil]; 

那麼你的UI項目和您的應用程序委託子類之間的任何連接將被填充在使用您的應用程序委託對象時(但只有在加載時爲零的IBOutlet將被設置,loadNibNamed:owner:options:不會更改所有者對象中的非零IBOutlet)。

1

我知道這個問題很老,但我想我會注意到這個對於其他人尋找這個答案。 AppDelegate不太適合交換視圖。您需要創建一個根視圖控制器。如果你創建一個新的視圖控制器,將其設置爲AppDelegate中的根視圖控制器,並將View 1 init的內容添加到新的根視圖控制器的「ViewDidLoad」部分,不管你喜歡,你都可以交換視圖。您仍然需要創建一個協議和委託來將消息發送回根視圖控制器,但是這裏有很多線程向您展示瞭如何執行此操作。祝你好運!

相關問題