parentViewController のメソッドにアクセスしようとすると、アプリがクラッシュします。これがストーリーボードのレイアウトです
MainViewController = STLMMainViewController (ParentViewController)
Scene1 = STLMTimeDateViewController (ChildViewController)
STLMTimeDateViewController のコードは次のとおりです。
#import "STLMTimeDateViewController.h"
#import "STLMMainViewController.h"
@interface STLMTimeDateViewController ()
@property (nonatomic, strong) STLMMainViewController *stlmMainViewController;
@end
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"The name of the controller %@",self.navigationController.parentViewController);
stlmMainViewController= (STLMMainViewController *) self.parentViewController;
[stlmMainViewController locationButtonSelected]; // This is where the App crashes
NSLog(@"TimeDateController");
}
アプリは実行されますが、STLMMainViewController が呼び出されると、アプリは次のエラーでクラッシュします。
2013-02-10 16:33:57.422 MyApp[9120:c07] The name of the controller <STLMMainViewController: 0x83850d0>
2013-02-10 16:33:57.434 MyApp[9120:c07] -[UINavigationController locationButtonSelected]: unrecognized selector sent to instance 0x8371a70
次の行を削除すると:
stlmMainViewController = (STLMMainViewController *) self.parentViewController;
そしてただ去る
[stlmMainViewController locationButtonSelected];
アプリは実行され、エラーは発生しませんが、[STLMMainViewController locationButtonSelected] の次のメソッドが呼び出されません (ログは表示されません)。
-(void)locationButtonSelected
{
[LocationButton setSelected:YES];
[eatDrinkbutton setSelected:NO];
[timeCalButton setSelected:NO];
[carButton setSelected:NO];
[contactButton setSelected:NO];
NSLog(@"LocationButtonSelected Method");
}
locationButtonSelected メソッドのすべてのプロパティとメソッド自体は、パブリック アクセスのために STLMMainViewController の .h で宣言されています。
ありがとう