viewdidappear не вызывается на 2-й круг - PullRequest
0 голосов
/ 01 ноября 2010

У меня есть view1, когда при встряхивании загружается view2 и в view2 нажимается кнопка загрузки view3, в view3 нажимается кнопка загрузки view1. Когда view1 загружается из view3, жест дрожания в view1 больше не отвечает на дрожание.

- (BOOL)canBecomeFirstResponder {
    return YES; // making view the first responder for shake event    
}


- (void)viewDidAppear:(BOOL)animated {
    [self becomeFirstResponder]; //for the shake event
    [super viewDidAppear:animated];
}


- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {

 if (motion==UIEventSubtypeMotionShake) {
  //adding AskAsh2VC START      
  AskAsh2VC *second = [[AskAsh2VC alloc] initWithNibName:nil bundle:nil];
  //this will set the animation style to CROSSDISSOLVE!
  second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
  [self presentModalViewController:second animated:YES];
  [second release];
  //adding AskAsh2VC END
 }
}

- (IBAction)goToAskAsh2VC: (id) sender {
 // NSLog(@"Button WORKS!!!!");     
 //adding AskAsh2VC START
 AskAsh2VC *second = [[AskAsh2VC alloc] initWithNibName:nil bundle:nil];

 //this will set the animation style to CROSSDISSOLVE!
 second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
 [self presentModalViewController:second animated:YES];
 [second release];
}

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Из того, что вы говорите, ваш view1 представляет view2 модально ... что означает, что view1 никогда не уходит, он просто скрыт view2 и всеми последующими представлениями.И вы выдвигаете несколько модальных представлений, которые обычно осуждаются.Похоже, вам лучше подойдет загрузка навигационного контроллера и загрузка каждого представления в стек.Если вы хотите сбросить обратно к view1, вы можете просто popToRootViewController и убить все, кроме вашего первого просмотра.

Причина, по которой ваши встряски не регистрируются, заключается в том, что они захватываются вашим контроллером скрытого представления.

0 голосов
/ 14 января 2011

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

[self presentModalViewController:second animated:YES];
[second viewDidAppear:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...