Приложение Split View, как вызвать функцию, которая находится в корневом представлении? - PullRequest
0 голосов
/ 15 августа 2011

Я делаю приложение с разделенным видом.В RootController есть функция для перехода к следующей ячейке табличного представления:

-(void)goToNextCell
{
    NSIndexPath *nextCell = [NSIndexPath indexPathForRow:currentSelection.row+1 inSection:currentSelection.section];

    [self.tableView selectRowAtIndexPath:nextCell animated:YES scrollPosition: UITableViewScrollPositionTop];
    NSLog(@"Went to next Cell!");
}

И в подробном представлении есть кнопка NEXT для перехода к следующей ячейке:

-(IBAction)goToNextTextClicked:(id)sender
{
    //Should call this function ^^^^ HOW?(((    
}

1 Ответ

3 голосов
/ 15 августа 2011

Обычно я делал такие вещи, определяя протокол делегата в моем заголовке класса контроллера подробного вида, например:

@protocol DetailViewControllerDelegate
- (void)didClickGoToNext;
@end

@interface DetailViewController {
    id<DetailViewControllerDelegate> delegate;
}

@property (nonatomic, assign) id<DetailViewControllerDelegate> delegate;
@end

В моей реализации контроллера подробного представления я тогда получал бы:

-(IBAction)goToNextTextClicked:(id)sender {
    [delegate didClickGoToNext];
}

Наконец, я бы с помощью контроллера корневого представления мог реализовать протокол DetailViewControllerDelegate и установить себя в качестве делегата.Корневой контроллер представления теперь будет уведомлен, когда будет нажата кнопка контроллера подробного просмотра, и он может реагировать соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...