添加表格视图单元格无法在iOS中运行?

时间:2015-12-28 22:56:54

标签: ios objective-c uitableview tableview

我正在尝试创建一个购物清单应用。我是Objective-C的新手。不知怎的,这段代码不起作用,我不知道我做错了什么。每当我在文本字段中键入内容并单击“添加”时,文本就不会添加到表格视图中。

HEADER FILE:

@interface NotesViewController : UIViewController  <UITableViewDataSource, UITableViewDelegate>

@property (nonatomic, strong) NSMutableArray *notes;
@property (nonatomic, strong) IBOutlet UITextField *noteTitleText;
@property (nonatomic, strong) IBOutlet UITableView *noteBlockTableView;

@end

实施文件:

@implementation NotesViewController

@synthesize notes; @synthesize noteTitleText; @synthesize noteBlockTableView;

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

    return [notes count]; }

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

    NSDictionary *tableViewTitle;
    tableViewTitle = [notes objectAtIndex:[indexPath row]];
    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:nil];
    [[cell textLabel] setText:[tableViewTitle objectForKey:@"cellTitle"]];
    return cell;

}

-(IBAction)addNote {

    NSDictionary *tableViewTitle;
    tableViewTitle = [[NSDictionary alloc] initWithObjectsAndKeys:[noteTitleText text], @"cellTitle", nil];
    [notes addObject:tableViewTitle];
    [noteBlockTableView reloadData];
    noteTitleText.text = @"";
}

3 个答案:

答案 0 :(得分:0)

也许你应该覆盖numberOfSectionsInTableView函数和return 1

答案 1 :(得分:0)

欢迎来到Objective-C!

在使用NSMutableArray之前,您应首先对其进行初始化,如下所示:

# NotesViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    notes = [[NSMutableArray alloc]init];
}

It should work.

答案 2 :(得分:0)

首先初始化数组注释,然后你应该在cellForRowAtIndexPath方法中分配这样的单元格

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

NSDictionary *tableViewTitle;
tableViewTitle = [notes objectAtIndex:[indexPath row]];
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.textLabel.text = [tableViewTitle objectForKey:@"cellTitle"];

return cell;

 }