标签栏,每按一次选项卡重新加载

时间:2011-05-10 07:18:34

标签: objective-c ios cocoa-touch uitabbar

我正在创建一个应用程序,其中有五个标签。每次按Tab键时我都需要重新加载每个控制器。

7 个答案:

答案 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()

    }