【发布时间】:2014-08-31 04:37:09
【问题描述】:
我有一个非常简单的 UITableView。我在这里通过创建一些对象来初始化它并将它们添加到完美的表格视图中:
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
//Instantiate
lapTimerModel = [[LTModel alloc] init];
[lapTimerModel addChallenge:@"I made it"];
[lapTimerModel addChallenge:@"Say the alphabet"];
[lapTimerModel addChallenge:@"100 Meter Sprint Challenge"];
[lapTimerModel addChallenge:@"Read the csci342 al spec challenge"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [lapTimerModel numberOfChallenges];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
LTChallenge *challenge = [lapTimerModel challengeAtIndex:indexPath.row];
cell.textLabel.text = challenge.name;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
现在我在这里定义了一个按钮,我想在表格中添加另一行,我创建了一个新对象并添加到其他对象列表中,但它没有添加到 TableView?我想我必须调用一些东西来再次抛出我的对象列表并带来新的对象。
- (IBAction)newAlert:(id)sender {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Enter Name"
message:@" "
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {
NSString *name = [alertView textFieldAtIndex:0].text;
NSLog(@"%@",name);
//Create a new challange
[lapTimerModel addChallenge:name];
//[self.tableView reloadData]; Not working?!
}
}
@end
我可以在控制台中看到我在警报中输入的内容。
【问题讨论】:
-
验证 self.tableView 不是 nil
-
在您添加的初始数据集之后,检查数据是否被添加到您的数据结构中。
-
你能显示 LTChallenge / LapTimerModel 的类文件代码吗?我已经使用标准 NSMutableArray 进行了测试,它工作正常,所以我必须假设它与在 reloadData 触发之前向自定义 mutableArray 类添加对象的延迟有关
标签: ios objective-c iphone uitableview xcode5