cellForRowAtIndexPath 没有被调用? [英] cellForRowAtIndexPath is not called?

查看:28
本文介绍了cellForRowAtIndexPath 没有被调用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 cellForRowAtIndexPath 不是每次都触发我将 dataSourcedelegate 设置为文件所有者.我还设置了参考插座.我也尝试了 tbl.delegate=self;tbl.datasource=self; 但它不起作用.

My cellForRowAtIndexPath does not fire everytime I set dataSource and delegate to the file owner. I also set referencing outlet. I also try tbl.delegate=self; and tbl.datasource=self; but it does not work.

我能做什么?

   -(void)load
   {
       [name resignFirstResponder];
       [salary resignFirstResponder];
       name.text=@"";
       salary.text=@"";
       [tblViewController.data removeAllObjects];

       NSString *insertStatement = [NSString stringWithFormat:@"select * from emp"];

       sqlite3_stmt *statement;
       NSString *path= [self getDBPath];

       if (sqlite3_open([path UTF8String], &db) == SQLITE_OK)
       {
           if (sqlite3_prepare_v2(db, [insertStatement  UTF8String], -1,&statement, NULL) == SQLITE_OK)
           {
               while (sqlite3_step(statement) == SQLITE_ROW)
               {

                   NSMutableDictionary *record=[[NSMutableDictionary alloc]init];

                   NSString *nm= [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,0)];

                   NSString * sl= [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,1)];

                   [record setValue:nm forKey:@"name"];
                   [record setValue:sl  forKey:@"salary"];

                   NSLog(@"%@ %@",nm,sl);

                   [tblViewController.data addObject:record];

                   NSLog(@"%@",tblViewController.data);

               }
               sqlite3_finalize(statement);
           }
           sqlite3_close(db);
       }
       NSLog(@"%lu",(unsigned long)[tblViewController.data count]);
       [tblViewController.tbl reloadData];
   }

//这段代码是tableviewcontroller.m

//This code is of tableviewcontroller.m

            #import "tableViewController.h"
       #import "ViewController.h"

   @interface tableViewController ()

    @end

   @implementation tableViewController
   @synthesize tbl,data;
   @synthesize viewOfTable;


   - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    NSLog(@"only for check");
    [self setup];
   }
return self;
  }

    - (void)viewDidLoad
    {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
//[self setup];
tbl.delegate = self;
       }

    - (void)didReceiveMemoryWarning
    {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
   }
    -( NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
   {
return  1;
    }

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

return [data count];

    }

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

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

    cell = [[UITableViewCell alloc]
            initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];

}

cell.textLabel.text=[[data objectAtIndex:indexPath.row] valueForKey:@
                     "name"];
cell.detailTextLabel.text=[[data objectAtIndex:indexPath.row]
                           valueForKey:@"salary"];

return cell;
    }

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
       //name.text =[[data objectAtIndex:indexPath.row] valueForKey:@"name"];
        //  salary.text=[[data objectAtIndex:indexPath.row] valueForKey:@"salary"];
    }

    - (void)setup
   {
//Store the whole view in uiView...mac
// [[NSBundle mainBundle] loadNibNamed:@"RegistrationViewController" owner:self options:nil];
viewOfTable=[[UIView alloc]initWithFrame:self.view.frame];

[viewOfTable addSubview:self.view];
self.viewOfTable.translatesAutoresizingMaskIntoConstraints=YES;
   }

请解决我的问题.你什么都没得到,请告诉我.

Please solve my problem. You didn't get anything then please tell me.

推荐答案

需要设置 Table DataSource 才能让 tableView 构造表格行.

You need to set Table DataSource in order to tableView to construct table rows.

 #import "tableViewController.h"
 #import "ViewController.h"

   @interface tableViewController ()  <UITableViewDataSource,UITableViewDelegate>

  - (void)viewDidLoad
    {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    tbl.dataSource = self
    tbl.delegate = self;
     }

这篇关于cellForRowAtIndexPath 没有被调用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆