【发布时间】:2013-06-04 05:22:43
【问题描述】:
我正在努力完成以下工作:
我想做的是:
1.) 当用户单击 UIViewController 中的按钮时,它将检索项目列表。
2.) 然后这些项目将显示在 UITableView 中。
3.) 最后项目数会显示在第三个视图上(不是由 UITableView 发起的)
我管理以上所有内容,除了我想将所有这些控制器包装在自定义标签栏控制器中。但是数据没有从 UIViewController 传递到 UITableView 或其他视图。我正在使用 Storyboard,我连接了标签栏控制器和其他 3 个控制器作为视图控制器。我尝试使用 UIStoryboard 方法实例化 UITableView 和 UIView 控制器并创建这些控制器的实例并将数据发送给它们,控制器显示在标签栏控制器中,但数据不是。顺便说一句,我没有使用 Segue。我在这里遗漏了什么吗?
谢谢。
代码:
UITabBarController <em>tabBarController = (UITabBarController</em>) 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>
我还尝试在 MainViewController 中创建 UI 表视图和结果视图控制器,并将数据传递给它们(甚至在它们显示之前),但是在显示这些控制器时不会出现任何数据。我确保正确分配和初始化这些控制器,并且 NSLog 显示这些控制器中的实例方法被调用,但仍然没有显示数据,即使控制器显示在选项卡栏视图控制器中,当它们显示时也是如此。
更新 2:
现在我正在尝试执行以下操作:
self.tableviewController = [self.tabBarController.viewControllers objectAtIndex:1];
self.resultViewController = [self.tabBarController.viewControllers objectAtIndex:2];
当我打电话给这些时:NSLog(@"%@", [self.tabBarController class]);NSLog(@"%@", [self.tableViewController class]);
NSLog(@"%@", [self.resultViewController 类]);
它们都是空的。
基本上,我有 3 个视图控制器作为“视图控制器”使用情节提要连接到 UITabbarController。主视图控制器(在 UITabbarController 中的索引 0 处),我从上面调用它,只有一个 UIButton。一旦按下,它将获取一个字符串列表并将其发送到表视图(在 UITabbarController 中的索引 1 处)和最后一个视图控制器(在 UITabbarController 中的索引 2 处)它将只显示字符串的数量作为结果,它从主视图控制器接收,而不是从表视图。
我没有在我的设置中使用任何 UINavigationController。
我希望能够通过单击 UITabbarController 上的栏项选项卡在显示表格视图和结果视图控制器之前关闭它们。通过触发,我的意思是数据将被发送到表视图和结果视图,即使它们尚未显示。
【问题讨论】:
-
显示代码。您是在 Interface Builder 中使用“嵌入标签栏控制器”选项还是您自己做的?