我想查看当前的rootViewController
是什么。
我有一个侧面菜单viewController,它从屏幕左侧滑出,它显示4个按钮 - 每个指向不同的viewController。点击它们时,例如button1:
- (IBAction)button1Tapped:(id)sender {
[self.sideMenuViewController setContentViewController:[[UINavigationController alloc] initWithRootViewController:[[myViewController1 alloc] init]]
animated:YES];
[self.sideMenuViewController hideMenuViewController];
}
所以我试图这样做:
myViewContollerX
,并打开sideMenuViewController。sideMenuViewController
上,buttonX
为灰色,因为用户当前正在使用myViewControllerX
。buttonY
和myViewControllerY
节目。sideMenuViewController
,buttonY
现在为灰色,因为用户当前在myViewControllerY
。所以我需要检查当前的rootViewController是什么,我假设。我该怎么做?感谢。
答案 0 :(得分:1)
不确定您正在使用哪个侧面板库,但也许您可以在点击按钮时对其进行样式设置。像这样:
- (IBAction)button1Tapped:(UIButton *)sender
{
// .... set the center controller
[self setButtonAsActive:sender];
}
- (void)setButtonAsActive:(UIButton *)activeButton
{
for (UIButton *button in @[self.button1, self.button3, self.button3])
{
if (button == activeButton)
// ... make it highlighted
else
// ... make it not highlighted
}
}
答案 1 :(得分:1)
如何查看当前的rootViewController
并在if statement
// Get your current rootViewController
NSLog(@"My current rootViewController is: %@", [[[UIApplication sharedApplication].delegate.window.rootViewController class]);
// Use in an if statement
UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
if ([rootViewController isKindOfClass:[MyViewController class]])
{
NSLog(@"Your rootViewController is MyViewController!!");
}
答案 2 :(得分:0)
您正在使用设置器来设置contentViewController
。只需使用吸气剂并阅读即可。
e.g。
UIVIewController *contentViewController = self.sideMenuViewController.contentViewController;
NSLog(@"ContentViewController class: %@", [contentViewController class]);
您可以使用以下方式检查其课程:
if([contentViewController isKindOfClass: [UINavigationController class]])
{
// check nav root and disable button
}
注意:强>
听起来按下单击按钮并启用所有其他按钮会更容易,但我不确定您是否还需要此信息。