Перезагрузите ViewController, нажав на TabBarItem - PullRequest
0 голосов
/ 15 марта 2012

Я сейчас немного отчаялся: / У меня есть контроллер панели вкладок с 4 предметами. На вкладке 4. Я включил веб-вид, который показывает список PDF. Если я открою PDF-файл в веб-представлении, невозможно вернуться к основному веб-представлению со ссылками. Есть ли способ, повторно щелкнув 4. TabBar, чтобы перезагрузить представление? Если я переключаюсь с 3. на 4. вкладку, она работает (viewWillAppear).

enter image description here

Кто-то сказал мне, что должен работать следующий метод:

- (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();
}

}

но на самом деле я понятия не имею, в какой файл мне следует вставить этот метод. (См. Печать экрана)

Большое спасибо заранее за вашу помощь, ребята!

1 Ответ

2 голосов
/ 16 марта 2012
  1. Подкласс 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, Inspection, измените класс контроллера панели вкладок на ваш TabBarController (вместо UITabBarController)

1.6.Вам также нужно включить MehrViewController.h в TabBarController.m


Редактировать

в MehrViewController.m (как вы разместили в своем вопросе, предполагая, что он имеетwebView)

// An example of implementing reloadView
    - (void)reloadView {
       [self.webView reload];
    }
...