如何使用单个ViewController在TabBar应用程序中切换视图时自动调用方法

时间:2010-10-27 01:57:41

标签: iphone cocoa-touch uiwebview uitabbarcontroller

我的应用程序使用带有4个选项卡的UITabBarController。每个选项卡都有一个UIWebView以及其他类型的对象。当应用程序启动时,我需要调用第一个webView的方法来检索我的Web内容。

我的viewdidLoad中有这个方法: [self performSelectorInBackground:@selector(getAdvisory)withObject:nil];

第一个标签上的网络内容运行正常。我只是无法让我的其他标签加载。我想我会使用switch或if语句,但我不知道如何判断加载哪个视图。

我需要对其余选项卡执行相同的操作。该应用程序有一个视图控制器。 使用按钮设置动作时一切正常。我只是不知道如何在加载不同的视图(点击标签)时调用该方法。

同样,当从网络中检索数据时,用于不占用主线程的最佳方法是什么?我已经阅读了在这种情况下将使用NSOperation的地方。它是否正确?如果是这样,我该如何做呢?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我一直在寻找这个问题的解决方案,并且有更好的方法。

只需覆盖viewDidAppear方法,并在视图出现时插入您想要执行的代码!

作为示例,以下代码将调用myMethod。

-(void) viewDidAppear:(BOOL)animated {
 [self MyMethod];
}

答案 1 :(得分:0)

可能是通过使用UITabBar的用户委托和方法:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
  

当用户选择标签栏项目时发送给代理人。

请参阅reference