1つのビューを持つプロジェクトがあります。私はそれにすべてをプログラムで描いています。したがって、プロジェクトに別のビュー(画面)を追加する場合は、UIViewControllerクラスを継承し、メソッドを実装するクラスを作成します。
- (void)viewDidLoad
次に、元のビューからこのビューをロードしたいので、次のようにします。
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]:認識されないセレクターがインスタンス0x683aca0に送信されました