ViewController被取消分配,导致崩溃

时间:2012-02-05 18:26:42

标签: iphone objective-c uiviewcontroller storyboard automatic-ref-counting

我在故事板中有一个视图,我分配了一个名为“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 个答案:

答案 0 :(得分:6)

处理此问题的最佳方法是使用属性。方法如下:

在你的.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];
}