2013-05-28 28 views
0

之間觸發操作,我仍然在特定問題上失敗。 我是一個編程新手,所以偶然我只是沒有使用正確的搜索術語 - 所以如果我創建了一個副本,請耐心等待。在搜索,查找和試驗後,我在同時出現的視圖控制器

以下是我正在努力的情況。

ViewController 1有兩個UIToolBars。上面的工具欄按鈕顯示一個值,下面的工具欄按鈕在ViewController 2中觸發一個動作,它恰好是一個通過容器視圖嵌入的TableViewController。 原因是 - 我需要在滾動TableView時保持工具欄的位置。

我使用委託協議將值從VC2發送到VC1中的上方工具欄,工作正常。 但我無法使用VC1中的下方工具欄觸發VC2中的操作。

我好心要問三個問題:

1)什麼是觸發動作/解決問題的最佳做法? 2.)在VC2上使用名爲「theButtonWasTapped」的方法時,代碼的外觀如何? 3.)方法是通過容器視圖以正確的方式嵌入TableView,還是有更好的方法?

我試圖通讀各種文件,但我甚至不知道在這種情況下從哪裏開始。

任何幫助將不勝感激,因爲我已經坐了幾天已經沮喪,不知道我的心理塊在哪裏結束,我的缺席知識開始。

非常感謝!

回答

1

如果將VC2嵌入到容器視圖中,則它將是VC1的子視圖控制器。因此,您可以使用self.childViewControllers [0]從VC1訪問它。所以你應該可以在VC1中做這樣的事情:

-(IBAction)toolBarButtonTapped:(id) sender { 
    SecondViewController *vc2 = self.childViewControllers[0]; 
    [vc2 methodInVC2]; 
} 
+0

非常感謝你 - 你的解決方案完美的工作。 一個子問題 - 如果VC1不會是childViewController? 任何方式獲得兩個同時顯示的意見溝通(如上所述)沒有segues? – BGC

+0

@BGC,如果他們都只是視圖(而不是控制器),那麼你可以在你的一個控制器中的每一個都有插座。如果第二個視圖是另一個控制器視圖,則不應將其添加到另一個控制器的視圖,而不必將其添加到子視圖控制器。 – rdelmar

+0

好的 - 謝謝。 我在談論ViewControllers,而不是視圖。我仍然試圖繞過ViewControllers,並且如何使用數據來回更新它們。但你們大大幫助了我,爲我進一步研究提供了寶貴的起點。 – BGC

相關問題