2017-04-10 6 views
0

Auf UIView Klasse UIViewController Zugabe, die jetzt UITableView Klasse UIView Klasse auf einer anderen UIViewController Klasse hinzugefügt wirdcellForRowAtIndexPath Methode aufruft, nicht

//MyControllerView 
//added filterSideView side to it and adding JaffaViewController.view 
-(void)loadControllerJaffa 
{ 
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" 
                 bundle:nil]; 
    JaffaViewController *jaffaViewController = 
    [storyboard instantiateViewControllerWithIdentifier:@"JaffaViewController"]; 
    jaffaViewController.view.frame = filterSideView.bounds; 
    [filterSideView addSubview:jaffaViewController.view]; 
    [jaffaViewController didMoveToParentViewController:self]; 
} 


#import <UIKit/UIKit.h> 

@interface JaffaViewController : UIViewController <UITableViewDataSource,UITableViewDelegate> 
@property (weak, nonatomic) IBOutlet UITableView *jaffaTableView; 

@end 

Implementierungsklasse

@implementation JaffaViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    _colorNameList = [[ColorModelClass colorListNames]allKeys]; 
    _jaffaTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 
    _jaffaTableView.dataSource = self; 
    _jaffaTableView.delegate = self; 
    [_jaffaTableView setBackgroundColor:[UIColor redColor]]; 


     // Do any additional setup after loading the view. 
} 

-(void)viewDidAppear:(BOOL)animated{ 
    [super viewDidAppear:YES]; 
    _jaffaTableView.dataSource = self; 
    _jaffaTableView.delegate = self; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
     // Dispose of any resources that can be recreated. 
} 


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; //count of section 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 


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


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleTableCell"]; 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
             reuseIdentifier:@"SimpleTableCell"]; 

    } 
    cell.textLabel.text = @"Welcome"; 
    return cell; 


} 

Ausgabe cellForRowAtIndexPath Methode ist nicht aufrufen überhaupt. Ich habe sowohl die Datenquellen- als auch die Delegiertenmethode festgelegt.

Es ruft die Methode numberOfRowsInSection und numberOfSectionsInTableView beide Methoden, aber nicht cellForRowAtIndexPath Methode. Strom Ich verwende Xcode 8.3 & iOS 10.3 Version. Ihre freundliche Eingabe wird mir helfen, das Problem zu lösen.

+0

Wenn NumberOfRows oder Abschnitte sind Null. Es wird nicht widerrufen. Überprüfen Sie numberOfRows –

+0

Stellen Sie sicher, dass die Delegate-Methode ordnungsgemäß festgelegt wurde. Das ist das Wichtigste. Ich wusste, dass du all diese Dinge getan hast. Aber ich bitte Sie, sich zu vergewissern. –

+0

@SivajeeBattina Ich überprüfe die Datenquelle und Delegate-Methode. – kiran

Antwort

0

Bitte versuchen Sie diesen Code

-(void)loadControllerView { 
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" 
                bundle:nil]; 
    JaffaViewController *jaffaViewController = 
    [storyboard instantiateViewControllerWithIdentifier:@"JaffaViewController"]; 

    [jaffaViewController willMoveToParentViewController:self]; 
    jaffaViewController.view.frame = filterSideView.bounds; 
    [filterSideView addSubview:jaffaViewController.view]; 
    [jaffaViewController didMoveToParentViewController:self]; 
} 

Hinweise:

Stellen Sie sicher, dass Datenquelle haben zu bestätigen und für sie delegieren.

+0

Ich habe versucht, nicht funktioniert. – kiran

0

Warum haben Sie die Datenquelle zweimal eingestellt? Entfernen Sie den Code in viewDidAppear und fügen Sie [_jaffaTableView reloadData]; am Ende der viewDidLoad

0
tingViewController *destVC = [self.storyboard instantiateViewControllerWithIdentifier:@"RatingViewController_id"]; 


destVC.completionHandler = ^(NSString* string) 
{ 
    NSLog(@"Returned strng.....%@",string); 
}; 

destVC.productId = self.productId; 

[destVC.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
[self addChildViewController:destVC]; 
[self.view addSubview:destVC.view]; 
[destVC didMoveToParentViewController:self]; 

[UIView animateWithDuration:0.3 animations:^{ 
    [destVC.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
}]; 
Verwandte Themen