我已经成功创建并实现了自定义UITabBarController,并在this tutorial之后使用了自定义UITabBar。直到我必须将其隐藏之前,它都可以正常工作。

我没有使用情节提要或IB,我必须获得对我现有的UITabBarController的引用,该引用在屏幕上隐藏了其中的自定义UIView。我正在尝试以这种方式进行操作,但是它只是创建该UITabBarController的新实例,而没有将我指向屏幕上看到的原始实例:

SGTabBarController *tabBarController = [[SGTabBarController alloc] init];
[tabBarController hideCustomTabBar];


SGTabBarController.h

@interface SGTabBarController : UITabBarController

@property (nonatomic) int tabBarHeight;

-(void)hideCustomTabBar;
-(void)showCustomTabBar;

@end


SGTabBarController.m

-(void)hideCustomTabBar{
    customTabBarView.hidden = YES;
    NSLog(@"HIDDEN!!!");
}

-(void)showCustomTabBar{
    customTabBarView.hidden = NO;
}


关于如何达到目标的任何想法?提前致谢!

最佳答案

如何在应用程序中的任何位置访问自定义UITabBarController。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Set up the Dashboard
//
_window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[_window makeKeyAndVisible];

UITabBarController *tabBarController = [[UITabBarController alloc] init];
NSMutableArray *tabBarItems = [@[] mutableCopy];

// Repeat this for any amount of ViewControllers
UITableViewController *tableViewController = [UITableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navController = [UINavigationController alloc] initWithRootViewController:tableViewController];

[tabBarItems addObject:navController];
tabBarController.viewControllers = tabBarItems;
self.window.rootViewController = tabBarController;

return YES;
}

10-08 04:16