Вы создаете новый контроллер представления:
MainViewController *mvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainController"];
Но вы не сохраняете его.Ваша иерархия представлений, как только вы добавили ее в другое представление.
[self.view addSubview:mvc.view];
Поэтому, когда нажата кнопка, вам отправляется сообщение IBAction
, но ваш контроллер представления уже освобожден.Чтобы этого не происходило, сохраните переменную mvc
, например, где-нибудь в свойстве.
@property(nonatomic, strong) MainViewController *controller;
self.controller = mvc;