2014-09-20 164 views
0

我在我的應用程序中有兩個視圖。在第一個視圖中,我有一個表格視圖,它顯示從互聯網上下載的數據。該FirstViewController有一個方法來獲取數據,並更新視圖:通過類調用方法

- (void)viewDidLoad 
{ 
    // Create PlanGenerator 
    _planGenerator = [[PlanGenerator alloc] init] 

    [self loadPlan]; 

- (void)loadPlan 
{ 
    _plan = [_planGenerator getData] 

    // Updating the view 

    // Updating the table view 
    [self.tableView reloadData] 
} 

從互聯網上我有一類叫做PlanGenerator下載數據。這個類有一個名爲getData的實例方法,它返回一個NSArray。表格視圖使用實例變量_plan(數組)在表格視圖中顯示數據。

在第二個視圖(由SecondViewController控制)中,您可以對要下載的內容進行一些調整。告訴這些變化PlanGenerator我使用了class properties的概念。現在,當我在第二個視圖中更改某些內容(實際上它只是一個參數)時,我想調用FirstViewController中的方法loadPlan

我的第一個想法是創建一個類方法,但是我必須爲該方法使用的每個變量創建「類屬性」。

有沒有更簡單的方法來做到這一點?

+0

一些事情....當你說「第二視圖」時,你是否真的指第二視圖控制器? (這裏有一個很大的**差異。)你知道'alloc/init'創建一個** new **對象,它不會將你在其他一些'PlanGenerator'中給出的信息碼? – 2014-09-20 14:07:26

+0

是的,我知道這是一個很大的差異,但我認爲很明顯,任何View都有一個ViewController。無論如何,我在我的問題中補充說。但是我不太明白你的問題的第二部分是什麼意思。我知道'PlanGenerator'的每個新對象都是不同的,但'getData'返回的數據對於每個實例都是相同的。 – Codey 2014-09-20 15:36:11

+0

有些人在單個控制器中有多個視圖,並根據需要隱藏/顯示它們。 (*聳肩*)我看到你改變了你的問題,所以'PlanGenerator'不是一個局部變量。這有助於我評論的第二部分;我正在談論你如何在方法結束時將超出範圍的東西調用'loadPlan'。 – 2014-09-20 15:41:48

回答

0

您缺少一些基礎知識。

嘗試使用此設計,假設FirstVC用於顯示數據並具有tableview。 SecondVC(您的PlanGenerator)用於獲取/下載數據。

在SecondVC:

  1. 創建任何財產(參數等稱標準),該FirstVC將提供決定如何下載。

  2. 創建一個公共方法getData。

在FirstVC:

  1. 創建伊娃(說_myPlanGeneartor)和分配它。

現在來自FirstVC的實例,您可以訪問SecondVC(_myPlanGenerator)的實例。由此你可以提供標準參數和請求數據(getData)。

+0

哦,我很抱歉,我想我沒有表達得很好。我有2個ViewControllers(在MVC模式中的控制器),我有PlanGenerator類(在MVC模式中的模型)。那實際上是我的結構。 – Codey 2014-09-20 15:28:34

+0

你有另一個想法嗎? – Codey 2014-09-22 20:38:20