通过点击TabBarItem重新加载ViewController
我现在有点绝望:/ 我有一个Tab Bar Controller with 4 Items。在4. Tab中,我包含了一个显示pdf列表的webView。如果我在webView中打开PDF,则无法通过链接返回到主webView。有没有办法通过重新点击4. TabBar重新加载视图?如果我从3.更改为4. tabbar它工作(viewWillAppear)。通过点击TabBarItem重新加载ViewController
有人告诉我,下面的方法应该工作:
- (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();
}
}
但实际上我不知道在哪个文件,我应该插入方法。 (见打印屏幕)
非常感谢您的帮助!
- 子类
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,年检,变更类的标签栏控制器在(而不是UITabBarController
)您TabBarController
1.6。您还需要包括MehrViewController.h
在TabBarController.m
编辑
在MehrViewController.m(如你在你的问题贴,假设它有一个web视图)
// An example of implementing reloadView - (void)reloadView { [self.webView reload]; }
嘿Canopus!非常感谢您的帮助!我想我几乎可以得到它,但可悲的是,我现在得到了一个警告:“实例方法'-reloadView'找不到(返回类型默认为'id')这是什么意思?简单的问题...) 以下你会发现警告的图片: http://joelschmid.ch/daten/tabbarcontroller.tiff 我该怎么办? – joelschmid 2012-03-20 22:59:24
@Schmid -reloadView是'你'在你的MehrViewController中定义的方法。您可能有不同的方法,例如-reloadMyWebView。默认情况下,你的MehrViewController没有这种方法。换句话说,你必须自己实现它。我添加了这样的实现的例子,作为对答案的编辑。 – Canopus 2012-03-20 23:35:45
嘿@Canopus 我希望这是我最后一次打扰你! :-) 您可以查看存档中的PrintScreen(http://joelschmid.ch/daten/PrintSrciAppReloadWebsite.zip)。我认为我做的一切正确,但当我点击TabBarItem第二次网站(webView)不重新加载。 如果您可以通过我的私人电子邮件与我联系(请参阅stackoverflow帐户),我真的很想回馈给您。 在此先感谢! – joelschmid 2012-03-21 20:30:37
这是类似的问题。有一个关于如何重新加载页面的教程,可以通过在选项卡上定位。 http://stackoverflow.com/questions/9709519/reload-uiview-when-pressing-tab-item-inside-initialized-view/9710060#9710060 – Canopus 2012-03-15 19:42:13
谢谢!我通读了教程,但实际上我不知道在哪里添加描述的代码?如果您可以查看发布的printScreen,您是否知道我必须添加所描述的实现? – joelschmid 2012-03-15 19:56:37