UIviewController があります。UIView をサブビューとして追加したいのですが、UIView には viewdidload メソッドがないため、手動でメソッドを呼び出す必要があります。私はこのように共有シングルトンを使用してこれを行っています:
view.mi には次のものがあります。
+ (TableLoadGroupMembersViewController *)sharedManager
{
static TableLoadGroupMembersViewController *shaderManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
shaderManager = [[TableLoadGroupMembersViewController alloc] init];
});
return shaderManager;
}
- (void)LoadTheView
{
TableViewGroupMembers = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
TableViewGroupMembers.dataSource = self;
TableViewGroupMembers.delegate = self;
[TableViewGroupMembers addSubview:TableViewGroupMembers];
}
私が持っているview.hで
+ (TableLoadGroupMembersViewController *) sharedManager;
- (void)LoadTheView;
そしてviewcontroller.mには次のものがあります:
CGRect frame = CGRectMake(100, 100, 300, 100);
TableLoadGroupMembersViewController *view = [[TableLoadGroupMembersViewController alloc] initWithFrame:frame];
[self.view addSubview:view];
TableLoadGroupMembersViewController* sharedSingleton = [TableLoadGroupMembersViewController sharedManager];
[sharedSingleton LoadTheView];
しかし、アプリがクラッシュします。なんで?
編集:
エラー: 0x281db5d: pushl %esi ... スレッド 1: EXC_BAD_ACCESS