2010-05-16 62 views
1

當使用UITabBarController時,當用戶在View1上輸入一些數據並按下按鈕時,我需要執行一些計算並在View2上顯示結果。我有一個AppDelegate,View1Controller,View2Controller和View3Controller(View3是一個基本上靜態的視圖)。我有一個AppDelegate,View1Controller,View2Controller和View3Controller(View3是一個基本上靜態的視圖)。我的AppDelgate聲明UITabBarController * rootController;當使用UITabBarController時強制從按鈕查看更改

在View1上,我的計算是在buttonPressed的IBAction中執行的;但是,我似乎無法強制視圖以編程方式切換到View2。

我已經做了很多搜索類似的問題,並認爲我應該做一些像「self.rootController.selectedIndex = 1」;然而,當我從我的View1Controller的buttonPressed中執行此操作時,出現錯誤「請求成員rootController的某些內容不在結構或聯合中」。

我想我在這裏錯過了一些基本的東西......可能需要用我的AppDelegate做些事情,但我把頭撞在牆上。

任何人都可以在這種情況下提供一些指導...就像我應該在View1Controller頭和參考我的AppDelgate的實現中做的關鍵事情?謝謝!

回答

0

這聽起來像一個奇怪的用戶界面 - 但讓我們接受你正在嘗試做正確的事情。

iPhone開發是關於模型視圖控制器 - MVC。所以原則上你想要的是view1更新你的模型,View2根據你的模型執行計算。

如果您使用的是標籤欄控制器,那麼您可能想知道何時切換標籤頁以便執行這些操作。在view1中,您可能希望編寫代碼以在viewWillDisappear中更新模型 - 這將在選項卡替換爲下一個時運行。免費功能(您可能希望在view2中使用此功能)是viewWillAppear - 這可以用於使用模型中的數據更新view2。

現在你需要確定在哪裏放置模型。您可能希望根據您需要存儲在模型中的數據創建一個包含@parameters的類。然後,您可以在AppDelegate中實例化您的模型,並將模型作爲參數傳遞給兩個視圖。

1

對於搜索如何從一個標籤頁切換到另一個標籤頁的人,提供的答案爲here