Cocoa Touch - dismissModalViewControllerAnimated: YES не работает - PullRequest
0 голосов
/ 16 сентября 2011

Привет всем,

Возможно, это довольно простой вопрос, но я новичок и просто не могу его решить.Хорошо, вот проблема:

  1. У меня есть контроллер основного вида, в делегате viewdidAppear этого контроллера я использую [self presentModalViewController animated:YES];, чтобы показать мой второй вид.
  2. В одном из методовв моем втором контроллере представления он инициировал третий контроллер для определенного процесса.
  3. После процесса в третьем контроллере он снова инициирует второй контроллер для вызова метода во втором контроллере.В этом методе я использую [self dismissModalViewControllerAnimated:YES];, но второе представление просто отказывается отклонять.

Надеюсь, я достаточно ясен в своем сценарии.Пожалуйста посоветуй.Заранее спасибо!

:)

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

@ из сообщения: после процесса в третьем контроллере он снова запускает второй контроллер для вызова метода во втором контроллере.

Это показывает, что вы запускаете новый экземпляр secondViewController, в котором отсутствует modalViewController. Вы должны вызвать dismissModalViewControllerAnimated для экземпляра, в котором вы фактически представили его.

Как показано ниже

Создайте свой третий ViewController следующим образом

@class SecondView;
@interface ThirdView : UIViewController {
    SecondView *secondViewRefPointer;

}
@property (nonatomic, retain) SecondView * secondViewRefPointer;
@end

и

//While adding the third view from the secondView
ThirdView *thirdViewInstance = [[ThirdView alloc]init];
thirdViewInstance.secondViewRefPointer = self; //self will refer to the current secondView instance

...

И в третьем представлении вызовите dismissModalViewController, как показано ниже

[secondViewRefPointer dismissModalViewControllerAnimated:YES];
0 голосов
/ 16 сентября 2011

В качестве пробной версии просто попробуйте сначала вызвать dismissModalViewControllerAnimated: YES с помощью любого действия, вызванного кнопкой, в третьем представлении. Если это работает, используйте NSLog и проверьте последовательность, если вызваны методы. Таким образом, вы можете выяснить, куда именно вы должны поместить dismissModalViewControllerAnimated: YES.

Надеюсь, это поможет.

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