ViewController освобождается, что приводит к сбою - PullRequest
4 голосов
/ 05 февраля 2012

У меня в раскадровке есть представление, которому я назначил идентификатор, называемый «MainView».Однако, если я добавлю его представление к подпредставлению, все, что последует, вызывает сбой (например, нажатие кнопки)

MainViewController *mvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainView"];
             [self.view addSubview:mvc.view];

Это действие, запускаемое кнопкой: (MainViewController.h)

-(IBAction)showUsername:(id)sender{

    [testLabel setText:@"username"];

}

и журнал аварий:

-[MainViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x44e0810

Я использую ARC.

1 Ответ

6 голосов
/ 05 февраля 2012

Лучший способ справиться с этим - использовать свойство.Вот как:

В вашем .h файле:

#import "MainViewController.h"

@interface MyClass : UIViewController

@property (strong, nonatomic) MainViewController *mvc;

@end

В вашем .m файле:

#import "MyClass.h"

@implementation MyClass

@synthesize mvc;

// Your code here
- (void)yourMethodHere {
    self.mvc = [self.storyboard instantiateViewControllerWithIdentifier:@"MainView"];
    [self.view addSubview:mvc.view];
}
...