代码之家  ›  专栏  ›  技术社区  ›  Jesse Bunch

UITableView未插入新行

  •  0
  • Jesse Bunch  · 技术社区  · 14 年前

    我正在尝试更新我的UITableView,但以下实现不起作用。我想知道我是不是做错了什么?

    NSDictionary *newContact = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:@"Name", @"Phone", nil]  forKeys: [NSArray arrayWithObjects:strName, strPhone, nil]];
    [arrQuickDialContacts addObject:newContact];
    
    NSLog(@"Returned %@ with phone %@\nNew Count: %d", strName, strPhone, [arrQuickDialContacts count]);
    
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:([arrQuickDialContacts count] - 1) inSection:0];
    NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
    
    [objQuickDialTableView beginUpdates];
    [objQuickDialTableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
    [objQuickDialTableView endUpdates];
    

    以下是我的UITableView委托方法:

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
        // How many rows?   
        return [arrQuickDialContacts count];
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
        // See if we have any cells available for reuse
        UITableViewCell *objCell = [tableView dequeueReusableCellWithIdentifier:@"QuickDialCell"];
        if (objCell == nil) {
    
            // No reusable cell exists, so let's create a new one
            objCell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: @"QuickDialCell"];
        }
    
        // Give it data
        NSDictionary *objRow = [arrQuickDialContacts objectAtIndex: [indexPath row]];
        objCell.textLabel.text = [objRow valueForKey:@"Name"];
    
        // Return the created cell
        return objCell;
    
    }
    

    最后,我的viewdidload填充数组的初始内容:

    - (void)viewDidLoad {
    
        // Load the quick dial contacts
        NSString *strPlist = [[NSBundle mainBundle] pathForResource:@"QuickDialContacts" ofType:@"plist"];
        arrQuickDialContacts = [[NSMutableArray alloc] initWithContentsOfFile: strPlist];
    
        [super viewDidLoad];
    }
    

    事先谢谢!

    1 回复  |  直到 14 年前
        1
  •  0
  •   Community Ian Goodfellow    7 年前

    需要打电话 [tableView reloadData];

    准确地说,还有一个更为具体的类似问题

    Unable to update UITableView