これまでのところ、UINavigationController と 1 つの TableViewController を含む Storyboard があります。TableViewController は UITableViewController のカスタム クラスです。これをストーリーボードに設定します。didFinishLaunching の Appdelegate には、次のコードがあります。
NSLog(@"rootviewconroller: %@",self.window.rootViewController);
//CTCAEMainTableViewController *mainViewController = (CTCAEMainTableViewController *)self.window.rootViewController;
UINavigationController *mainNavigationController = (UINavigationController *)self.window.rootViewController;
CTCAEMainTableViewController *mainTableViewController = (CTCAEMainTableViewController *) mainNavigationController.topViewController;
NSLog(@"table: %@",mainTableViewController);
NSLog(@"table: %@",mainTableViewController.testMethod);
CTCAEMainTableViewController は、私のカスタム UITableViewController です。
@interface CTCAEMainTableViewController : UITableViewController
しかし、返されるのは通常の UITableViewController だけであり、testMethod を呼び出そうとすると、実行時エラーが発生します: 認識されないセレクターがインスタンスに送信されました。
また、NavigationController の viewControllers メソッドで TableViewController にアクセスしてから、インデックス 0 のオブジェクトにアクセスしようとしました。同じことです。私のストーリーボードにはカスタムクラスが表示されているので、私は非常に混乱しています。