iOS開発を始めたばかりで、タブ1(2番目のタブ)にTableViewControllerを使ってUITabBarControllerを作成するとクラッシュしています。iOS UITabBarController issue
は、ここに私のコードです - AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
diseases = [NSMutableArray arrayWithCapacity:5];
Disease *disease1 = [[Disease alloc] init];
Disease *disease2 = [[Disease alloc] init];
Disease *disease3 = [[Disease alloc] init];
Disease *disease4 = [[Disease alloc] init];
Disease *disease5 = [[Disease alloc] init];
disease1.name = @"disease1";
disease2.name = @"disease2";
disease3.name = @"disease3";
disease4.name = @"disease4";
disease5.name = @"disease5";
[diseases addObject:disease1];
[diseases addObject:disease2];
[diseases addObject:disease3];
[diseases addObject:disease4];
[diseases addObject:disease5];
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController =
[[tabBarController viewControllers] objectAtIndex:0];
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"NormalBiopsy" bundle:nil];
firstViewController = [[tabBarController viewControllers] objectAtIndex:0];
DiseaseTableViewController *diseaseTableViewController = [[DiseaseTableViewController alloc] initWithNibName:@"DiseaseTableViewController" bundle:nil];
diseaseTableViewController = [[tabBarController viewControllers] objectAtIndex:1];
SecondViewController *secondViewController = [[SecondViewController alloc]
initWithNibName:@"TestYourSelf" bundle:nil];
secondViewController = [[tabBarController viewControllers] objectAtIndex:2];
ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"About" bundle:nil];
thirdViewController = [[tabBarController viewControllers] objectAtIndex:3];
// Override point for customization after application launch.
return YES;
}
これはDiseaseTableViewControllerのテーブルビューで空白のテーブルでUITabBarControllerにつながる - データが読み込まないので。 しかし、私はと
diseaseTableViewController.diseases = diseases;
アプリのクラッシュを行う場合:
diseaseTableViewController = [[navigationController viewControllers] objectAtIndex:1];
原因:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[FirstViewController viewControllers]: unrecognized selector sent to instance
を
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- [UINavigationController setDiseases:]: unrecognized selector sent to instance
は、だから私はnavigationControllerにdiseaseTableViewControllerを追加しようとしました
私はAppDelegateではなくそのクラスの実装でDiseaseTableViewControllerを実装しようとしましたが、再びUIの空白のテーブルで終了しました。
アイデア?
感謝を述べたもののように)(のviewDidLoadでDiseaseController.diseasesのデータを取り込むことによって、これを解決し、私はあなたが少し逃したと思います私の貧しい説明からの質問! DiseaseTableViewController(病気の配列を持つ)のみがタブ1(第2タブ)にあり、残りは異なるビューコントローラです。ですから、私はテーブルのエントリとして5つの病気があるでしょう(これは意味がありますか、または私はDiseaseTableViewControllerまたはそのビューのviewDidLoadメソッドでそれを行うことができますか?)。私はすでにDiseasTableViewControllerを指しているUiNavigationControllerを持っていますが、その選択エラー – oliveromahony