UITableView не отображает адресную книгу - PullRequest
1 голос
/ 20 января 2012

Я думаю, что я не получаю ручку в адресной книге и UITableView, или, возможно, я просто делаю это проще, чем есть.

вот мой .h файл:

@interface Contacts : UITableViewController <ABPeoplePickerNavigationControllerDelegate> {

NSMutableArray *menuArray;
NSString *firstName;
NSString *lastName;
UIButton *addcontact;
}

@property (nonatomic, retain) NSMutableArray *menuArray;
@property (nonatomic, strong) UIButton *addcontact;
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;

-(void)showPeoplePickerController;
@end

И мой .m файл:

 -(IBAction)addcontact:(id)sender {

ABPeoplePickerNavigationController *peoplePicker=[[ABPeoplePickerNavigationController alloc] init];

[peoplePicker setPeoplePickerDelegate:self];



[self presentModalViewController:peoplePicker animated:YES];  }
- (void)viewDidLoad
{
menuArray = [[NSMutableArray alloc] init];

[super viewDidLoad];

} 

- (BOOL)peoplePickerNavigationController:

(ABPeoplePickerNavigationController *)peoplePicker

  shouldContinueAfterSelectingPerson:(ABRecordRef)person {

    firstName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
    [menuArray addObject:firstName]; 
    lastName = (__bridge NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
    [menuArray addObject:lastName];



[self dismissModalViewControllerAnimated:YES];
return NO;}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

return [menuArray count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

NSString *cellValue = [menuArray objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

return cell;

}

Я надеюсь, что кто-то может мне помочь с этим, я новичок в UITableViews и адресных книгах :))

1 Ответ

3 голосов
/ 20 января 2012

В целях повышения производительности (не говоря уже о анимации) UITableView не обновляется автоматически при изменении источника данных.

Попробуйте добавить [myTableView reloadData]; после добавления имени и фамилии в массивы (или в viewWillAppear:

...