Это то, что я делаю, аналогично настройкам> Общие> Международные> Таблицы языков в iPhone/iPod.
table view http://i48.tinypic.com/15sanh3.jpg
Пользователь может нажать на строку и флажок появится. Вид отклоняется при нажатии «Готово» или «Отмена».
Сначала создайте UITableViewController
, который отобразит ваши варианты. У вас есть панель инструментов сверху с помощью кнопки «Отмена» и «Готово». Также эти свойства:
SEL selector; // will hold the selector to be invoked when the user taps the Done button
id target; // target for the selector
NSUInteger selectedRow; // hold the last selected row
Этот вид будут представлены с помощью метода presentModalViewController:animated:
, чтобы он отображался в нижней части экрана. Вы можете представить его каким-либо другим способом, но это похоже на стандарт для приложений iPhone.
Перед представлением представления установите target
и selector
, поэтому метод будет вызываться, когда пользователь нажимает кнопку «Готово».
Теперь, вновь созданный UITableViewController you can implement the the
Tableview: didSelectRowAtIndexPath: `Способ:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark; // show checkmark
[cell setSelected:NO animated:YES]; // deselect row so it doesn't remain selected
cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:selectedRow inSection:0]];
cell.accessoryType = UITableViewCellAccessoryNone; // remove check from previously selected row
selectedRow = indexPath.row; // remember the newly selected row
}
также осуществлять отменяют и Молодцы методы для кнопок на панели инструментов:
- (IBAction)done:(UIBarButtonItem *)item
{
[target performSelector:selector withObject:[stringArray objectAtIndex:selectedRow]];
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)cancel:(UIBarButtonItem *)item
{
[self dismissModalViewControllerAnimated:YES];
}
Wow Большое спасибо за это, на самом деле nice implementation – Affian
Это работает для меня, но есть проблема, когда вы нажимаете на одну и ту же строку более одного раза. Технически он продолжает добавлять и удалять галочку из той же строки, а то, что вы видите, - nocheckmark. Чтобы решить эту проблему, просто добавьте это условие в начало tableView: didSelectRowAtIndexPath: if (selectedRow! = IndexPath.row) {} – Kamel