2014-01-08 1 views
0

в моем приложении я использую раскадровки. В раскадровке я использовал контроллер представления по умолчанию для входа и создал другое имя контроллера имен Inventory. В новом контроллере представления я использую представление таблицы. Отображается таблица, но методы делегата и источника данных не вызываются. Я пробовал много решений, но я впадина понять код problem.The я использовал это:методы представления делегатов в виде таблиц не отображаются в новом представлении контроллера в раскадровках

#import <UIKit/UIKit.h> 

@interface InventoryViewController : UIViewController <UITableViewDataSource,  UITableViewDelegate> 

@end 

файл реализация:

#import "InventoryViewController.h" 
#import "customCell.h" 
@interface InventoryViewController() 

@end 

@implementation InventoryViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
} 
return self; 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view. 
self.view.backgroundColor = [UIColor blueColor]; 
UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0, 110, 320, 350)]; 
table.delegate = self; 
table.dataSource = self; 
[self.view addSubview:table]; 
[table relaodData]; 

} 
- (IBAction)Logout:(id)sender { 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Login"]; 
[self.navigationController pushViewController:vc animated:YES]; 
} 

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

#pragma mark - UITableViewDelegate Methods 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; } 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
NSLog(@"hello"); 
return 5; 

} 



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

    customCell *cell = [tableView dequeueReusableCellWithIdentifier:@"customcell"]; 

if (cell == nil) 
{ 
    cell = [[customCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:@"customcell"]; 
} 

// Here we use the provided setImageWithURL: method to load the web image 
// Ensure you use a placeholder image otherwise cells will be initialized with no image 
cell.item_image.image = [UIImage imageNamed:@"ipad_strip_logo.png"]; 
cell.type.text = @"electronics"; 
cell.name.text = [NSString stringWithFormat:@"my object %d",indexPath.row]; 

return cell; 
} 
@end 
+0

является «привет», напечатанным в журнале при запуске проект? – Ashutosh

+0

@Ashu no hello не печатается, а клетки no.of также не являются 10 .. – BalaChandra

ответ

1

Вам нужно применять - reloadData: метод после установки deledate, DataSource и массив данных.

reloadData

перезагружает строк и секций приемника. - (Недействительными) reloadData Обсуждение

Вызов этот метод, чтобы перезагрузить все данные, которые используются для построения таблицы, включая ячейки, раздел верхние и нижние колонтитулы, индексные массивы, и так далее. Для эффективности в представлении таблицы отображаются только те строки, которые видны. Он корректирует смещения, если таблица сжимается в результате перезагрузки. Делегат табличного представления или источник данных вызывает этот метод, когда он хочет, чтобы представление таблицы полностью перезагрузило свои данные. Это не должно быть названо в методах, вставлять и удалять строки, особенно в анимации блока реализованного с вызовами beginUpdates и endUpdates

пройти через этот документ https://developer.apple.com/library/ios/documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableView/reloadData

+0

Я добавил этот метод, но методы делегата не вызываются, а пустая таблица подходит – BalaChandra

+0

@BalaChandra, обновите свой последний вопрос и проверьте, правильно ли сконфигурирована пользовательская розетка для соты/Если программно, то проверьте код. – Tirth

+0

Customecell настроен, но даже я указал количество ячеек как 10, и в этом методе я использовал nsLog (@ "hello"), он также не печатается no.of ячеек не 10 – BalaChandra

Смежные вопросы