我有一个只有一个 View 的项目。我正在以编程方式在其上绘制所有内容。因此,当我想向我的项目添加另一个 View (屏幕)时,我创建了一个继承自 UIViewController 类并实现方法的类
- (void)viewDidLoad
然后我想从我的原始 View 加载这个 View ,我这样做:
在ViewController.h
#import <UIKit/UIKit.h>
#import "TestViewControllerClass.h"
@interface ViewController : UIViewController <UITableViewDataSource> {
}
@property (strong,nonatomic) TestViewControllerClass *testView;
@end
在ViewController.m
@implementation ViewController
@synthesize testView;
- (void)viewDidLoad
{
[super viewDidLoad];
testView = [[TestViewControllerClass alloc] init];
[self.view addSubview:testView]; //crash here
}
然后在我的 TestViewControllerClass.h
#import <UIKit/UIKit.h>
@interface TestViewControllerClass : UIViewController
@end
和TestViewControllerClass.m
- (void)viewDidLoad
{
[super viewDidLoad];
}
为了检查方法 wiewDidLoad 是否会被执行,我在那里设置了一个断点,但没有任何反应。事实上,我的应用程序崩溃了(我在代码中添加了注释)。
当我收到崩溃时:-[TestViewControllerClass superview]: unrecognized selector sent to instance 0x683aca0
最佳答案
替换
[self.view addSubview:testView]; //crash here
与
[self.view addSubview:testView.view];
关于iphone - 在 iOS 中动态创建 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246220/