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

发布于 2024-09-29 02:03:29 字数 494 浏览 4 评论 0原文

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

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

第一个选项卡上的网页内容运行良好。我只是不知道如何加载其他选项卡。我想我会使用 switch 或 if 语句,但我不知道如何判断加载了哪个视图。

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

另外,当从网络检索数据时,最好使用哪些方法来不占用主线程?我已经阅读过在这种情况下将使用 NSOperation 的地方。这是正确的吗?如果是这样,我该怎么做呢?

提前致谢。

My application uses UITabBarController with 4 tabs. Each tab will have a UIWebView along with other types of objects. When the app launches I need to call the method for this first webView to retrieve my web content.

I have this method in my viewdidLoad:
[self performSelectorInBackground:@selector(getAdvisory) withObject:nil];

The web content on the first tab works fine. I'm just at a loss to get my other tabs to load up. I think I would use a switch or if statement but I do not know how to tell which view is loaded.

I need to do the same for the rest of the tabs. The app has a single view controller.
When setting an action using a button everything works fine. I just do not know how to call the method when a different view (tapping tabs) loads.

Also when retrieving data from the network, what are the best methods to use to not tie up the main thread? I have read where NSOperation would be used in this scenario. Is this correct? If so how would I go about doing this?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久伴你 2024-10-06 02:03:29

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

只需重写 viewDidAppear 方法并插入您想要在视图出现时执行的代码即可!

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

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

I was looking for a solution to this problem and there is a better method.

Simply override the viewDidAppear method and insert the code you want to execute when the view does appear!

As an example the following code will call myMethod.

-(void) viewDidAppear:(BOOL)animated {
 [self MyMethod];
}
半透明的墙 2024-10-06 02:03:29

也许通过使用 UITabBar 的用户委托和方法:

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

当用户选择选项卡栏项目时发送给委托。

请参阅参考

maybe by using a user delegate of your UITabBar and the method:

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

Sent to the delegate when the user selects a tab bar item.

See reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文