DismissmodalViewController не удаляет модальный вид - PullRequest
0 голосов
/ 13 апреля 2011

Я понял это со вчерашнего дня, но пока не понял этого правильно. Я добавил modalviewcontroller для моего контроллера представления загрузки поверх моего контроллера панели вкладок, и он работает нормально. Добавлен код в приложение Delegate:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions { 
   [navController.navigationBar setTintColor:[UIColor blackColor]]; 
   [window addSubview:rootController.view]; 
   [window makeKeyAndVisible];
   LoadingViewController *lvc = [[LoadingViewController alloc] initWithNibName:@"LoadingView" bundle:nil]; 
    // Delegate added here
   lvc.loadingDelegate = self;
   [rootController presentModalViewController:lvc animated:YES]; 
   [self URL]; 
   [lvc release]; 
   return TRUE; 
}

Теперь я делаю мой анализ, и когда это делается, я вызываю следующий код в другом представлении с именем XMLParsingView.m, где синтаксический анализ закончился.

- (void)handleLoadedApps
 {
 LoadingViewController *loading = [[[LoadingViewController alloc] init] autorelease];
 //delegating to let the load view controller know to dimiss itself by defining  disappear method in protocol
 [loading.loadingDelegate disappear];
 }

и в загрузочном контроллере представления у меня есть метод, который вызывает dismissModalViewControlAnimated:

 -(void)disappear{
[activity stopAnimating];
[activity removeFromSuperview];
[self removeFromSuperview];
[self dismissModalViewControllerAnimated:YES];
}

Но по какой-то причине он никогда не удалит представление и не загрузит его обратно в мой контроллер панели вкладок. Очень нужна помощь, если кто-то сталкивался с такими проблемами.

Sagos

Ответы [ 2 ]

1 голос
/ 14 апреля 2011

В вашем коде вы, кажется, создаете, без пера, новый LoadingViewController и немедленно идете и отклоняете его. В своем делегате приложения вы создаете свой первый loadViewController с пером, представляете его модально в rootController и затем освобождаете его. Поскольку вы хотите отклонить его за пределами приложения, у вас есть

3 варианта, (самый сложный и самый вменяемый)

a) Наблюдение ключа-значения для свойства XMLParsingView из LoadingViewController для удаления самого себя после завершения задачи.

b) Используйте делегирование, чтобы информировать LoadingViewController о завершении задачи, чтобы завершить саму себя.

в) Извлеките свой rootController из вашего [[UIApplication sharedApplication] делегата], что означает, что вы должны предоставить rootController как свойство или через метод, и заставить rootController отклонить ваш модальный режим.

0 голосов
/ 13 апреля 2011

Вам необходимо вызвать dismissModalViewControllerAnimated на rootViewController, а не на контроллере представления загрузки.

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