Это сработало в вашем RootViewController, затем вы скопировали код showView: в новый контроллер представления, и он не работает. Ваш разговор с @ kl94 объясняет остальное. Меню view было объявлено, но не инициализировано в новом контроллере представления.
Я думаю, что если вы вернетесь к RootViewController, где он работает, вы найдете код, в котором инициализировано menuView: ... menuView = [[SomeViewClass alloc] init ..... Этот код необходимо скопировать в новый просмотр контроллера тоже. Достойное место для этого - метод viewDidLoad.
Я согласен с @Amiramix, что анимация блоков - это путь. Я бы предложил следующий код:
- (void)viewDidLoad {
[super viewDidLoad];
// code copied from RootViewController that initializes menuView
// probably, the frame is set so that the menu is positioned off the visible part of the view
[self.view addSubview:menuView];
}
- (IBAction)showView:(id)sender{
NSLog(@"showView button pressed, menu view is %@", menuView);
[UIView animateWithDuration:0.5 animations:^{
menuView.frame = CGRectMake(/* the rect where you want the menu to end up */);
}];
}