iOS: как использовать кнопку для переключения строки Tableview? - PullRequest
1 голос
/ 17 июля 2011

Я делаю приложение, в котором у меня есть Tableview, который загружается при запуске приложения.После того, как я нажму на строку, я получаю представление с контроллером навигации и панелью инструментов.На панели инструментов я сделал две кнопки назад и вперед (стрелка назад и стрелка вперед).Как я могу кодировать эти кнопки, чтобы выбрать следующую и предыдущую строки таблицы (назад для предыдущей строки, вперед для следующей строки)?

1 Ответ

1 голос
/ 17 июля 2011

Возможно, вы захотите сделать свой контроллер табличного представления делегатом контроллера подробного представления, а затем определить протокол делегата, чтобы сообщить делегату, когда эти кнопки были нажаты.Таким образом, контроллер табличного представления может делать с таблицей все, что ему нужно.

Один из способов сделать это:

@implementation MyTableViewController
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)p {
    MyDetailViewController *vc = [[MyDetailViewController alloc] initWithRow:p.row];
    // configure vc
    vc.delegate = self;
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];
}

- (void)myDetailViewControllerDidSelectPrevious:(MyDetailViewController *)vc {
    // use vc.row-1 to update the view controller or push a new one
}
- (void)myDetailViewControllerDidSelectNext:(MyDetailViewController *)vc {
    // use vc.row+1 to update the view controller or push a new one
}
@end

@protocol MyDetailViewControllerDelegate
- (void)myDetailViewControllerDidSelectPrevious:(MyDetailViewController *)vc;
- (void)myDetailViewControllerDidSelectNext:(MyDetailViewController *)vc;
@end
@implementation
...
- (void)nextButtonPressed:(id)sender {
    [self.delegate myDetailViewControllerDidSelectNext:self];
}
- (void)previousButtonPressed:(id)sender {
    [self.delegate myDetailViewControllerDidSelectPrevious:self];
}
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...