Проблема с просмотром информации в приложении для iPhone - PullRequest
0 голосов
/ 29 августа 2010

В настоящее время я использую этот код для отображения информационного представления для приложения для iPhone.

-(IBAction)showInfo:(id)sender {
InfoView *info = [[InfoView alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
info.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:info animated:YES];
[info release];

}

И этот код возвращается к моему основному виду

-(IBAction) exitInfo:(id)sender {
 [self.parentViewController dismissModalViewControllerAnimated: YES];
}

Когда я запускаю его на симуляторе, он работает нормально, однако на реальном iPhone, когда я нажимаю кнопку, которая вызывает метод exitInfo, он выполняет анимацию, но как только он полностью исчезает с экрана и толькомой основной вид виден, экран будет мерцать, снова быстро показывая информационный вид.Как я могу это исправить?

1 Ответ

0 голосов
/ 29 августа 2010

По моему мнению, ваш viewController даже не должен знать, что он просматривается модально.

Попробуйте поместить код, который отправляет сообщение dismissModalViewController, в ваш главный контроллер и предупредить ваш главный контроллер, что пользователь нажал кнопку dismissиспользуя делегата.

что-то вроде этого в вашем «родительском» viewController

-(IBAction)showInfo:(id)sender {
    InfoView *info = [[InfoView alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
    info.modalTransitionStyle = UIModalTransitionStylePartialCurl;
    info.delegate = self;
    [self presentModalViewController:info animated:YES];
    [info release];
}

-(IBAction)closedButtonClicked {
    [self dismissModalViewControllerAnimated: YES];
}

и в вашем «модальном» viewController

-(IBAction) exitInfo:(id)sender {
 [delegate closedButtonClicked];
}

Конечно, вам понадобитсяпротокол вроде

@protocol MyCustomDelegate 
    -(IBAction)closedButtonClicked;
@end 

и что-то подобное в вашем "модальном" интерфейсе

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