У меня есть список имен в UITableView
. Делегат tableView является viewController. Я использую IBAction
вызвать UIAlertView
(с текстовым полем), так что пользователь может добавить еще одно имя в Tableview:Как перезагрузитьДата в tableView при нажатии кнопки UIAlertView?
- (IBAction)addGuest:(UIButton *)sender
{
// open a alert with text field, cancel and add button
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Add New Guest" message:@"Example: John Doe" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Add", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
}
Когда пользователь нажимает на кнопку «Добавить» в UIAlertView
, я пишу информацию в текстовое поле для списка свойств:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Guests.plist"];
[self.guestList addObject:[[alertView textFieldAtIndex:0] text]];
NSMutableDictionary *plistDict = [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:guestList, nil] forKeys:[NSArray arrayWithObjects:@"nameList", nil]];
NSString *error = nil;
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
if (plistData) {
[plistData writeToFile:plistPath atomically:YES];
} else {
NSLog(@"Error in saveData: %@", error);
}
}
}
на данный момент, я хотел бы сделать перезагрузку на Tableview (внутри описанного выше способа), поэтому появляется вновь добавленное имя. Я назначил делегата UIAlertView
себе.
Однако [self.tableView reloadData]
не работает, потому что tableView не распознается в этом методе. Я пробовал много вариантов, но я не могу заставить работать.
Как это сделать?
Спасибо!
таблицаView не распознается? Пожалуйста, объясни. Если диспетчер представлений не является UITableViewController, вам нужно будет добавить свойство представления таблицы самостоятельно. – danh
Точно, как говорит дань. У вас есть IBOutlet для набора таблиц в файле заголовков диспетчера просмотров? – stephenmuss