我已经成功创建并实现了自定义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;
}