2015-04-21 108 views
0

我有一個需要更新的tableView。正如另一個問題在這裏解釋:Swift updating UITableView with new dataSwift通過UITabBarController訪問viewController的函數

無論如何。正確的答案最終與我原來的問題完全無關,並且我被提出了關於如何調用我需要調用它的特定viewController函數的另一個問題。

這是我的控制器設置。

NavigationController 
    ContainerViewController. (2 childViewControllers) 
     menuTabBarController (this is a UITabBarController) 
     SuggestionsViewController (This is the viewController I need to run a function from) 
     ... 
     SideBarViewController 

具有UITableView的的viewController是suggestionsViewController

我需要運行該功能的viewController是SideBarViewController

我想調用的函數被調用loadSuggestions()

我的第一次嘗試,當然是剛運行:

SuggestionsViewController().loadSuggestions() 

但是在我的其他問題進行說明。這創建了它的一個新實例,而不是在viewController上運行loadSuggestions(),我想更新我的UITableView

幫助推斷UITableView未更新的問題的用戶(rdelmar)指出我在/正確/方向,我得到了以下代碼工作:

(menuTabBarController.viewControllers as! [UIViewController])[0] 

但是,我目前的問題是,我不能訪問loadSuggestions()

所以。簡而言之。我需要使用功能loadSuggestions()更新我的UITableView,當我點擊我的滑出菜單上的按鈕時。

這怎麼辦?

回答

2

如果(menuTabBarController.viewControllers as! [UIViewController])[0]是正確的視圖控制器,那麼您可以強制轉換as SuggestionsViewController,只要它不是私有方法,您就可以調用該方法。

由於您得到的數組是UIViewController,並且UIViewController沒有loadSuggestions方法,所以不能使用該方法調用該方法。

+0

完美的工作!非常感謝。在這裏呆了好幾天。大量的幫助。儘管如此,仍然不能接受3分鐘。謝謝!!!!! –

+0

很高興幫助:) –

相關問題