2017-10-03 1 views
0

Hier ist eine Beschreibung meiner Klasse.Wie gibt man der Tabellenansicht eine Aktion und wie fügt man das Kennzeichen für die Offenlegung hinzufügen hinzu?

This is screenshots of first tableview

Zuerst das obere Bild beziehen.

Also hier habe ich eine Schaltfläche erstellt (siehe Szene 1 in Bild) Nach dem Klick auf eine Schaltfläche erscheint eine Tabellenansicht (siehe Szene 2 in Bild). Wenn ich auf eine Zelle klicke, wird der Tabellenansichtszellenwert auf diesem Schaltflächentext angezeigt (siehe Szene 3 in Bild). Hier habe ich keiner Tabellenansicht irgendeine Aktion gegeben.

Jetzt habe ich Aktion für diese Zeile (nur zum Index 0 zum Testen) gegeben. Wenn ich auf Uitableview 1 auf uitableviewcell klicke, wird eine andere Tabellenansicht 2 und die vorherige Tabellenansicht ausgeblendet. siehe folgendes Bild.

Second Table view

Also in diesem Tableview 2 I Aktion also geben wollen, wenn ich von Tableview Reihe der zweiten Tabelle für Beispiel auf eine Zeile klicken: Angenommen, ich auf Arjun dann auf die Schaltfläche Label geklickt müssen von Arjun ändern und diese Tabellenansicht muss ausgeblendet werden oder Wenn Sie auf eine Tabellenansichtszeile wie Karan klicken, dann erscheint in einem Popup-Fenster wie Karan ausgewählt.

Kurz gesagt, ich möchte wissen, wie Sie dieser zweiten Tabellenansicht Zeile und wie Offenlegungskennzeichen in der ersten Tabellenansicht hinzugefügt werden können.

ViewCotroller.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> 

@property (weak, nonatomic) IBOutlet UIButton *button; 
@property (weak, nonatomic) IBOutlet UITableView *tableview1; 
@property (weak, nonatomic) IBOutlet UITableView *tableview2; 

@property(strong,nonatomic)NSArray *arr1; 
@property(strong,nonatomic)NSArray *arr2; 

- (IBAction)buttonAction:(id)sender; 

@end 

ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    self.arr1=[[NSArray alloc]initWithObjects:@"One",@"Two",@"Three",@"Four",@"Five", nil]; 
    self.arr2=[[NSArray alloc]initWithObjects:@"Arjun",@"Karan",@"Amar", nil]; 

    self.tableview1.delegate=self; 
    self.tableview1.dataSource=self; 
    self.tableview2.delegate=self; 
    self.tableview2.dataSource=self; 

    self.tableview1.hidden=YES; 
    self.tableview2.hidden=YES; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    NSInteger rows; 

    if(tableView == _tableview1) rows = [_arr1 count]; 
    if(tableView == _tableview2) rows = [_arr2 count]; 

    return rows; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    static NSString *[email protected]"SampleIndentifier"; 

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:simple]; 

    if(cell==nil) 
    { 
     cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simple]; 
    } 

    // cell.textLabel.text=[self.arr1 objectAtIndex:indexPath.row]; 

    if(tableView == _tableview1) 
     cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row]; 


    if(tableView == _tableview2) 
     cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *cell= [self.tableview1 cellForRowAtIndexPath:indexPath]; 

    [self.button setTitle:cell.textLabel.text forState:UIControlStateNormal]; 
    self.tableview1.hidden=YES; 


    if(tableView == _tableview1) 
    { 
     if(indexPath.row==0) 
     { 
      self.tableview1.hidden=YES; 
      self.tableview2.hidden=NO; 
       if(indexPath.row==0) 
       { 
       // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

       } 
      // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

     } 

     //cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row]; 
    //self.tableview2.hidden=YES; 
    } 
    if(tableView == _tableview2) 
     cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

} 

- (IBAction)buttonAction:(id)sender { 

    if(self.tableview1.hidden==YES) 
    { 
     self.tableview1.hidden=NO; 
    } 
    else 
    { 
     self.tableview1.hidden=YES; 
    } 
} 
@end 
+0

Versuchen Sie zu debuggen, indem Sie NSLog verwenden und den Zellindex drucken und mit der Tabelle oder Zeile übereinstimmen. Um Ihre Bedingung vollständig zu erfüllen .. und dann können Sie Lösung finden ... Da in Frage .. Ich kann ' Ich verstehe deine Bedingungen vollständig. –

+0

wie man den Offenbarungsindikator zur ersten Tabellenansicht hinzufügt ==> gehe zum Storyboard -> wähle deine Zelle -> Zubehör -> wähle das Veröffentlichungskennzeichen –

+0

Ich habe eine Lösung für meine erste Frage bekommen. Nur eine Sache ist noch übrig und das ist der Disclosure Indicator. @ Nirav nach deiner Antwort ich folgte, aber die Sache ist, dass ich Tableview und nicht Tableview Zelle genommen wurde. Wie kann ich diesen Offenlegungsindikator hinzufügen? Gibt es eine Möglichkeit, programmgesteuert hinzuzufügen? –

Antwort

1

Check folgende Antwort ..!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *cell= [self.tableview1 cellForRowAtIndexPath:indexPath]; 

    [self.button setTitle:cell.textLabel.text forState:UIControlStateNormal]; 
    self.tableview1.hidden=YES; 


    if(tableView == _tableview1) 
    { 
     if(indexPath.row==0) 
     { 
      self.tableview1.hidden=YES; 
      self.tableview2.hidden=NO; 
       if(indexPath.row==0) 
       { 
       // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

       } 
      // cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

     } 

     //cell.textLabel.text = [self.arr1 objectAtIndex:indexPath.row]; 
    //self.tableview2.hidden=YES; 
    } 
    if(tableView == _tableview2) 
     cell.textLabel.text = [self.arr2 objectAtIndex:indexPath.row]; 

} 
+0

das funktioniert für mich ...! –

Verwandte Themen