私は次のことを達成しようとしています:
私がやりたいことは次のとおりです。
1.) ユーザーが UIViewController のボタンをクリックすると、アイテムのリストが取得されます。
2.) アイテムは UITableView に表示されます。
3.) 最後に、アイテムの数が 3 番目のビューに表示されます (UITableView によって開始されません)。
上記のすべてを管理しますが、これらすべてのコントローラーをカスタマイズされたタブ バー コントローラーにラップしたいと考えています。しかし、データは UIViewController から UITableView または他のビューに渡されていません。私はストーリーボードを使用しています。タブバーコントローラーと他の3つのコントローラーをビューコントローラーとして接続しました。UIStoryboard メソッドを使用して UITableView と UIView コントローラーをインスタンス化し、これらのコントローラーのインスタンスを作成してデータを送信しようとしましたが、コントローラーはタブバーコントローラーに表示されますが、データは表示されません。ちなみに、私はセグエを使用していません。ここで何か不足していますか?
ありがとう。
コード:
UITabBarController tabBarController = (UITabBarController) self.window.rootViewController;
UIStoryboard *storyboard1 = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
mainViewController *mainController = (mainViewController*)[storyboard1 instantiateViewControllerWithIdentifier:@"mainController"];
UIStoryboard *storyboard2 = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
tableViewController *tableview = (tableViewController*)[storyboard2 instantiateViewControllerWithIdentifier:@"tableviewController"];
UIStoryboard *storyboard4 = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
resultController *mapView = (resultController*)[storyboard4 instantiateViewControllerWithIdentifier:@"resultView"];</code>
I have tried also creating the UI Table View and the result view controller in MainViewController and pass data to them (before they are even displayed), but no data is ever present when these controllers are displayed. I made sure I alloc and init these controllers properly and NSLog shows that the instance methods in these controllers are called, but still no data is shown, even though the controllers are displayed in tab bar view controller, when they are displayed.
UPDATE 2:
Now I am trying to do the following:
self.tableviewController = [self.tabBarController.viewControllers objectAtIndex:1];
self.resultViewController = [self.tabBarController.viewControllers objectAtIndex:2];
And when I call these:
NSLog(@"%@", [self.tabBarController class]);
NSLog(@"%@", [self.tableViewController class]);
NSLog(@"%@", [self.resultViewController class]);
それらはすべてヌルです。
基本的に、ストーリーボードを使用してUITabbarControllerに「ビューコントローラー」として接続された3つのビューコントローラーがあります。上記を呼び出すメイン ビュー コントローラー (UITabbarController のインデックス 0) には、UIButton が 1 つだけあります。押すと、文字列のリストが取得され、テーブル ビュー (UITabbarController のインデックス 1) に送信され、最後のビュー コントローラー (UITabbarController のインデックス 2) に送信され、結果として文字列の数だけが表示されます。 Table View からではなく、Main View Controller から受信します。
セットアップで UINavigationController を使用していません。
UITabbarController のバー項目タブをクリックして表示される前に、Table View と Result View Controller を起動できるようにしたいと考えています。発射するということは、まだ表示されていなくても、データが Table View と Result View に送信されることを意味します。