0

对于这方面的任何帮助,我将不胜感激 - 我一直在试图弄清楚如何从嵌套的 UITABLEVIEW 中更改 tabbarcontroller 上的选项卡,如 RayWenderlich.com 的关于类似滚动条的脉冲教程http://www.raywenderlich .com/4723/how-to-make-an-interface-with-horizo​​ntal-tables-like-the-pulse-news-app-part-2但我真的卡住了。我正在使用故事板和 xcode 4.4

几周后我对xcode完全陌生,所以如果这是一个新手问题,我深表歉意。根据上面链接中的图像,我已经使嵌套的水平表格视图工作正常,但我想使用图像切换到新选项卡但不能 - 我认为这是因为表格视图是嵌套的,所以我找不到对层次结构中的 tabbarcontroller 的正确引用。

如果我使用 ArticleListViewController.m didselect 教程包含的注释似乎建议插入导航代码将生成一个 NSLog 输出并更改选项卡,但只使用图像上方的一个小细条(我偶然发现了这一点)但没有任何反应图片。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {
      // Navigation logic may go here. Create and push another view controller   

   //THIS SELECTS WHEN CLICK THINSTRIP JUST ABOVE BUTTONS
   NSLog(@"ARTICLELISTVIEWCONTROLLER check didSelect: %u", self.tabBarController.selectedIndex);  

   self.tabBarController.selectedIndex = 2;
       }

当我单击实际图像时, Horizo​​ntaTableCell.m 中的以下代码更合适地生成 NSLog 输出,但我无法找出允许我更改选项卡的 tabbarcontroller 引用。

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {

    //the following line just generates an Error as follows: Property tabBarController not found on object of type 'HorizontalTableCell *'  

   self.tabBarController.selectedIndex = 2;

   NSLog(@"HORIZONTALTABLECELL DIDSELECT");

   }

我已经寻找并寻找解决方法,但无法弄清楚。发现提到使用 appdelegate 但不确定如何执行此操作。不能以新用户的身份发布故事板图像,但有一个带有 4 个导航控制器的 tabbarcontroller - 第一个是 ArticleListViewController 菜单,其他每个都是 viewcontrollers - 我希望放置一个加载链接/本地页面的 webview 取决于选择的菜单和关于屏幕的其他菜单和一个额外的当前空白屏幕。

请帮忙!

谢谢!

4

1 回答 1

0

我猜你有 tabBarController 作为你的应用程序委托中的一个属性?

您可以通过以下方式联系您的应用委托: [[UIApplication sharedApplication] delegate]

将其转换为您的应用程序委托类,编译器不会警告您到达标签栏控制器。像这样:

((YourAppDelegate *) [[UIApplication sharedApplication] delegate]).tabBarController.selectedIndex = 2;

至于 tableview 委托方法,ArticleListViewController 听起来像是你想要的地方。这些单元格最多应该只是带有少量表示逻辑的哑视图。如果它没有被调用,请确保您已将其正确设置为表视图的委托(如果您遵循链接到的教程,则在界面构建器中)。

于 2012-08-26T23:23:09.193 回答