2013-06-08 1 views
2

Я довольно новый.Функция движения не работает после изменения вкладок в приложении с вкладками

Я работаю над табличным приложением.

Я хотел бы иметь одну из вкладки с функцией встряхивания, включены

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event 
{ 
    if (event.subtype == UIEventSubtypeMotionShake) 
    { 
     NSLog(@"shook"); 
    } 
} 

это работает прекрасно, пока вкладке I от этого FirstViewController к другому, а затем вернуться. Как только я вернусь в FirstViewController, функция встряски не работает вообще. Есть идеи?

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

- (BOOL)canBecomeFirstResponder 
{ 
    return YES; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [self canBecomeFirstResponder]; 
    [super viewDidAppear:animated]; 
} 

-(void)viewWillDisappear:(BOOL)animated 
{ 
    [self resignFirstResponder]; 
    [super viewWillDisappear:animated]; 
} 

ответ

1

Кажется, что viewDidAppear не будет вызываться каждый раз при переключении между вкладками: viewDidAppear for tabbar based apps

Как было предложено ответить там, реализовать делегат UITabBarController didSelectViewController и вызвать метод viewDidAppear контроллера вида.

По-прежнему реализуйте делегата и просто определяйте выбранный контроллер просмотра, и если он является FirstViewController, вызовите метод canBecomeFirstResponder.

Например, если вы объявили FirstViewController как свойство панели вкладок:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ 
    if ([viewController isKindOfClass:[FirstViewController class]]) { 
     [viewController canBecomeFirstResponder]; 
    } 
} 
Смежные вопросы