Вызов метода в суперпредставлении из подпредставления - PullRequest
0 голосов
/ 24 января 2011

Я просмотрел сайт для ответов, но, похоже, ничего не помогло мне

Это мой сценарий У меня есть основной вид, называемый settingsView. Подвид, AboutView вызывается из settingsView с помощью следующего

        aboutView = [[AboutView alloc] initWithNibName:@"AboutView" bundle:nil];
        CGRect theFrame = aboutView.view.frame;
        theFrame.origin = CGPointMake(330,50);
        aboutView.view.frame = theFrame;
        theFrame.origin = CGPointMake(0,50);
        theFrame.size.width=320;
        theFrame.size.height=360;       
        [UIView beginAnimations:nil context:nil]; 
        [UIView setAnimationDuration:0.5f];
        aboutView.view.frame = theFrame;
        [UIView commitAnimations];
        [self.view addSubview:aboutView.view];  

Я хотел бы вызвать метод или даже метод viewDidAppear в settingsView, как только aboutView будет отклонен.

Я перепробовал почти все способы, которые мог найти на этом форуме

В aboutView я пробовал [self.view.superview viewDidAppear]; [self.parentViewControllers ...] // Возвращает ноль, так как я не использую presentViewController

Я прочитал предложения по настройке делегата, но по какой-то причине я не могу установить делегат для aboutView.

Есть предложения?

1 Ответ

1 голос
/ 24 января 2011
- (void)viewController {
    for (UIView* next = [self.view superview]; next; next = next.superview) {
        UIResponder* nextResponder = [next nextResponder];
        if ([nextResponder isKindOfClass:[UIViewController class]]) {
            [(UIViewController*)nextResponder viewWillAppear:YES];
        }
    }
}

Я использовал приведенный выше код из библиотеки Three20. Определил метод в подпредставлении и вызвал его. Это работает, но это правильный способ сделать это? Любой другой более простой способ?

Спасибо

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