繁体   English   中英

视图控制器中的UITableView

[英]UITableView inside a view controller

如您所见,这是我的View Controller,下部有一个UITableView。

在此处输入图片说明

我将委托和数据源放在.h文件中

@interface CourseFindrViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

虽然我的.m文件是这样的:

@interface CourseFindrViewController ()
{ sqlite3 *_db;}
@property (nonatomic, weak) IBOutlet UILabel *jNameLabel;
@property (weak, nonatomic) IBOutlet UITextView *jDescLabel;
@property (nonatomic, weak) IBOutlet UILabel *jEarningsLabel;
@property (weak, nonatomic) IBOutlet UITableView *cTableLabel;
@end

@implementation CourseFindrViewController
@synthesize jDetails =_jDetails;



-(void)viewWillAppear:(BOOL)animated {

        _jDetails = (Jobs *)self.jDetails;
        [self.jNameLabel setText:_jDetails.jName];
        [self.jDescLabel setText:_jDetails.jDesc];
        [self.jEarningsLabel setText:_jDetails.jEarnings];
    NSLog(@"%d", _jDetails.jID);
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    self.jNameLabel = nil;
    self.jDescLabel = nil;
    self.jEarningsLabel = nil;
}

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

-(NSArray *)course;
{
    NSString *sqLiteDb = [[NSBundle mainBundle]pathForResource:@"CourseFindr" ofType:@"sqlite"];
    sqlite3_stmt *statement;
    NSMutableArray *retrieve = [[NSMutableArray alloc] init];
        if (sqlite3_open([sqLiteDb UTF8String], &_db) != SQLITE_OK)
        {
                NSString *query= [NSString stringWithFormat:@"SELECT course. * FROM course INNER JOIN jobsCourse ON jobsCourse.courseID = course.cID WHERE jobsCourse.jobID = %d", _jDetails.jID];

            if (sqlite3_prepare_v2(_db, [query UTF8String], -1, &statement, nil) == SQLITE_OK)
            {
                while (sqlite3_step(statement) == SQLITE_ROW)
                {
                    int _cID = sqlite3_column_int(statement, 0);
                    char *cNameChars = (char *) sqlite3_column_text(statement,1);
                    char *cDescChars = (char *) sqlite3_column_text(statement, 2);
                    char *cSchoolChars = (char *) sqlite3_column_text (statement, 3);
                    char *cProgramChars = (char *) sqlite3_column_text(statement, 4);
                    NSString *_cName =cNameChars?[[NSString alloc]initWithUTF8String:cNameChars]:@"";
                    NSString *_cDesc = cDescChars?[[NSString alloc]initWithUTF8String:cDescChars]:@"";
                    NSString *_cSchool = cSchoolChars?[[NSString alloc]initWithUTF8String:cSchoolChars]:@"";
                    NSString *_cProgram = cProgramChars?[[NSString alloc]initWithUTF8String:cProgramChars]:@"";
                    Course *courses = [[Course alloc]
                               initWithCID:_cID
                               cName:_cName
                               cDesc:_cDesc
                               cSchool:_cSchool
                               cProgram:_cProgram];
                    [retrieve addObject:courses];
                }
            sqlite3_finalize(statement);
            }

        }
    return retrieve;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *title1 = _jDetails.jName;
    self.navigationItem.title = title1;
}
- (void)dealloc {

}

代码到此为止。 我添加了一个断点。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.course count];
}

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"courseCell"];
    NSLog(@"Here.");
    Course *courses = [self.course objectAtIndex:indexPath.row];
    cell.textLabel.text =courses.cName;
    cell.detailTextLabel.text =courses.cSchool;
    return cell;
}

而且它仍然没有将数据传递给表..表没有出现。 在此处输入图片说明

您必须在表视图与数据源和委托之间添加连接。 为此,请从表视图中拖动到视图控制器并选择数据源,然后执行相同的操作,但这一次选择委托。

您必须在xib中连接数据源和委托。 请让我知道这个答案是否对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM