我正在创建一个应用程序,其中有五个标签。每次按Tab键时我都需要重新加载每个控制器。
答案 0 :(得分:14)
将要重新加载的代码放入视图中,或者在视图中显示所有视图。
一切顺利。
答案 1 :(得分:3)
示例:
// 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];
}
答案 2 :(得分:2)
- (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];
}
}
答案 3 :(得分:0)
所以写一个方法来重绘页面上的元素,然后按Tab键调用它。如果您提供有关您所面临问题的更多信息,我将编辑此帖子。
答案 4 :(得分:0)
如果您正在使用uitableview,请使用此
[tableview reloaddata];
答案 5 :(得分:0)
我希望你在谈论webview应该在每次导航tabbar项目时重新加载webview,只需在标签栏委托中实现[webview reload]。
答案 6 :(得分:0)
快速5
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let vc = self.viewControllers?[1] as? stepVC // ViewController That need to be loaded
vc?.viewDidLoad()
}