#objective-c #ios #cocoa-touch #uitabbar
#objective-c #iOS #cocoa-touch #uitabbar
Вопрос:
Я создаю приложение, в котором у меня есть пять вкладок. Мне нужно перезагружать каждый контроллер каждый раз, когда нажата вкладка.
Ответ №1:
Поместите код, который вы хотите перезагрузить, в представлении появится или в представлении появлялось все представление.
Всего наилучшего.
Комментарии:
1. спасибо за ответ …. но мне нужно сделать так, чтобы при каждом нажатии tab перезагружалась вся страница…
2. Мой код уже был в viewDidAppear () и он не обновляется при нажатии той же кнопки панели вкладок. Ответ кажется неполным.
Ответ №2:
Пример:
// AppDelegate ( and <UITabBarControllerDelegate> )
// Creation tabbar and controllers
UIViewController* myController1 = [[UIViewController alloc] init] autorelease];
UINavigationController* nav1 = [[[UINavigationController alloc] initWithRootViewController:myController1] autorelease];
UIViewController* myController2 = [[UIViewController alloc] init] autorelease];
UINavigationController* nav2 = [[[UINavigationController alloc] initWithRootViewController:myController2] autorelease];
NSArray *array = [NSArray arrayWithObjects: myController1, myController2, nil];
UITabBarController* tab = [[[UITabBarController alloc] init] autorelease];
tab.viewControllers = array;
tab.delegate = self; // <-- don't forget set delegate for TabBarController
// TabBarController Delegate methods
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
{
// Reload selected VC's view
[viewController.view setNeedsDisplay];
}
Ответ №3:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//other codes
[self.tabBarController setDelegate:self]
//other codes
}
// UITabBarControllerDelegate method.
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if ([viewController respondsToSelector:@selector(reloadDataTemp)]) {
[(YourViewController *)viewController reloadData];
}
}
Ответ №4:
Итак, напишите метод для перерисовки элементов на вашей странице и вызывайте его при нажатии tab. Я отредактирую этот пост, если вы предоставите больше информации о проблеме, с которой вы столкнулись.
Ответ №5:
если вы используете uitableview, используйте это
[tableview reloaddata];
Ответ №6:
Я надеюсь, вы говорите о webview. webview должен перезагружаться при каждом переходе к элементу панели вкладок. Ну, просто реализуйте [webview reload] в делегате панели вкладок.
Ответ №7:
Swift 5
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let vc = self.viewControllers?[1] as? stepVC // ViewController That need to be loaded
vc?.viewDidLoad()
}