我正在尝试创建一个购物清单应用。我是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 = @"";
}
答案 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];
}
答案 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;
}