2011-03-31 61 views
0

我正在製作一個新的應用程序,它有四組非常相似的數據。我想使四個UIButtons與四個UITableViews導航到一個UITabBar。我不想製作四個按鈕來推送四組桌面視圖。我想用13個UIViews製作一個應用會使它比需要的更大。所以,我必須弄清楚如何讓UIButton動作改變表中的數據。我正在積極開展這個項目。任何的意見都將會有幫助。謝謝。如何使用UIButton Action來更改用於填充UITableView的NSArray?

回答

1

爲了更改表視圖數據源,您需要更改您的表代表上的numberOfRowsInSection返回的內容。我這樣做的一個方法是使用一個枚舉來表示我要使用,並有一個局部變量來保存這一個選擇

typedef enum 
{ 
    DataSetOne, 
    DataSetTwo 
} DataSetEnum 

@property(nonatomic, retain) DataSetEnum dataset; 
@property(nonatomic, retain) NSArray *datasetone; 
@property(nonatomic, retain) NSArray *datasettwo; 

- (void) viewDidLoad 
{ 
    dataset = DataSetOne; 
} 
- (IBAction) buttonPressed 
{ 
    dataset = DataSetTwo; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    if(dataset == DataSetOne) 
    { 
      return [self.datasetone count]; 
    } 
    else if(dataset == DataSetTwo) 
    { 
      return [self.datasettwo count]; 
    } 
} 

該數據集,然後在的cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(dataset == DataSetOne) 
    { 
      //configure cell 
    } 
} 
+0

謝謝。我一定會嘗試你的方法。 – 2011-03-31 17:52:35

0

NSArray* data = ... 

然後在您的按鈕的方法:如果你的數據是相似的,你可以只從每個按鈕的IBAction變量設置一個數據

-(IBAction*)clickedButton1:(id)sender { 
    data = [self getButton1Data] 
    [self reloadAll] 
} 
+0

謝謝,這聽起來像個好主意。我會嘗試。 – 2011-03-31 18:01:33

+0

我決定不這樣做,所以不會有任何答案。 – 2011-08-26 04:14:52