私はrootViewControllerを持っており、プログラムで作成されたUIButtonを持っています。このUIButtonに別のView Controllerを表示させたい。なんらかの理由で、次のエラーでクラッシュします。メソッドが呼び出されたときにプログラムによってクラッシュするUIButton
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_TutorialViewController", referenced from: objc-class-ref in RootViewController.o ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status
ここにInfo UIButtonを作成するコードがあります。このコードは、loadViewメソッドである:
// Create a Button to get Help
UIButton *helpButton = [UIButton buttonWithType:UIButtonTypeInfoDark ] ;
CGRect buttonRect = helpButton.frame;
// CALCulate the bottom right corner
buttonRect.origin.x = self.view.frame.size.width - buttonRect.size.width - 8;
buttonRect.origin.y = buttonRect.size.height - 8;
[helpButton setFrame:buttonRect];
[helpButton addTarget:self action:@selector(doHelp:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:helpButton];
}
ここで別のビューコントローラにtransisitionするアクションです:任意のヘルプ
- (IBAction)doHelp:(id)sender{
NSLog(@"help button pressed");
TutorialViewController *sampleView = [[[TutorialViewController alloc] init] autorelease];
[sampleView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:sampleView animated:YES];
}
感謝。
私のansを試してみましたか? – Krunal
なぜ "initWithNibName:bundle:"ではなく "init"でView Controllerを初期化していますか? – viggio24
initは大丈夫です。最悪の場合、viewControllerにはビューがなく、黒く表示されます。たぶん彼はこのinitメソッドから 'initWithNibName:bundle:'を呼び出します。私は時々これを行う。 –