我现在有点绝望:/ 我有一个带有4个项目的标签栏控制器。在4.选项卡中,我包含了一个显示pdf列表的webView。如果我在webView中打开PDF,则无法使用链接返回主webView。有没有办法重新点击4. TabBar重新加载视图?如果我从3.更改为4. tabbar它可以工作(viewWillAppear)。
有人告诉我,以下方法应该有效:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
if ([viewController isKindOfClass:[UIColor class]]) {
//Try this if you're pushing the webView in another ViewController
[viewController.navigationController popToRootViewControllerAnimated:YES];
//or access to your webView and call goBack();
}
}
但实际上我不知道我应该在哪个文件中插入该方法。 (见打印屏幕)
预先感谢你的帮助!
答案 0 :(得分:2)
UITabBarController
1.1。 Cmd + N并创建一个NSObject类的新实例,并将其命名为TabBarController
1.2。在TabBarController.h
中替换NSObject
,使其显示为@interface TabBarController : UITabBarController <UITabBarControllerDelegate>
1.3。在TabBarController.m
中添加:
- (id) init
{
self = [super init];
if (self)
{
self.delegate = self;
}
return self;
}
1.4。这个
- (void)tabBarController:(UITabBarController *)tabBarController
didSelectViewController:(UIViewController *)viewController
{
// Is this the view controller type you are interested in?
if ([viewController isKindOfClass:[MehrViewController class]])
{
// call appropriate method on the class, e.g. updateView or reloadView
[(MehrViewController *) viewController updateView];
}
}
1.5。在IB,检查中,将标签栏控制器的类更改为您的 TabBarController
(而不是UITabBarController
)
1.6。您还需要在MehrViewController.h
TabBarController.m
修改强>
在MehrViewController.m中(正如您在问题中发布的那样,假设它有一个webView)
// An example of implementing reloadView - (void)reloadView { [self.webView reload]; }