2013-03-11 88 views
1

我想控制tableview與分段控制(這是上面的tableview)的上下文。在更改段我想重新加載我的表tableView與不同的單元格(我有兩種類型的單元格和每種類型的數據數組)的數據。如何清除並重新加載不同單元格的數據?如何在分段控件更改後重新加載UITableView?

回答

3

我只是提供了幾行代碼,以@ jaydee3提到的。

- (IBAction)segmentControlValueChanged:(UISegmentedControl *)sender 
{ 
    //Do something 
    [self.tableView reloadData]; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return self.segmentControl.selectedSegmentIndex?[self.dataArray2 count]:[self.dataArray1 count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(self.segmentControl.selectedSegmentIndex){ 
     // Create Type cell for selected Index 1 
    } 
    else{ 
     // Create Type cell for selected Index 0 
    } 
} 
1

在您的tableView delegate中,檢查分段控件中的選定內容並返回正確的單元格。

如果分段控制得到更改,請致電reloadData登錄tableView

0

1.如果您想要更改2個或更多tableview中的數據,那麼最重要的一行是低。

@IBAction func segmentValueChanged(_ sender: UISegmentedControl) 
{ 
    self.<YourTableViewName>.reloadData() 
} 

2.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    var index = <segmentObjectCreated>.selectedSegmentIndex 

    if index == 0 { 
     return <table1ArrayList>.count 
    } 
    else{ 
     return <table12ArrayList>.count 
    } 
} 

3.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    var cell = <TableViewObj>.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 

    var index = <segmentObjectCreated>.selectedSegmentIndex 

    if index == 0 { 
     cell.textLabel?.text = <table1ArrayList>[indexPath.row].productName 
    } 
    else { 
     cell.textLabel?.text = <table2ArrayList>[indexPath.row].newLaunch 
    } 
    return cell 
} 

就是這樣,編碼快樂!

相關問題