在我的iOS项目中,有一个登录ViewController,如果用户拥有正确的凭据,则会将用户发送到 TabViewController 。
这个TabViewController有5个选项卡,第五个用于Logout,它将用户发送回Login ViewController,当然还清除了用户已填充的凭据。
我的问题是我的登录页面中显示了TableView的菜单。 如何在Login ViewController页面中删除此菜单?
我使用Xcode6&目标C
如果您需要我的问题的任何进一步解释/源代码,请随时询问。
注意:
一开始,我的意思是当Login ViewController首次显示给用户时,菜单不会显示。
答案 0 :(得分:1)
事实证明,您应用的整个UI架构都基于UITabBarController
。但是,在您的情况下,这不是一个很好的做法。我想建议你添加单独的模态控制器来呈现登录页面。
答案 1 :(得分:1)
尝试:
self.tabBar.hidden = YES;
答案 2 :(得分:1)
假设您正在使用故事库,我有给定的解决方案 我创建了一个示例应用程序并尝试复制您的问题,所以这里是我的故事板
我设计它的方式我有一个单独的登录视图控制器和两个嵌入在tabbar控制器中的视图控制器(菜单列表和注销)。
如果您是故事板的新手,那么使用tabbarController嵌入viewControllers非常简单,首先选择视图控制器,然后转到Xcode中的编辑器菜单
好了,现在重新开始营业,我在登录界面按钮的IBAction上添加的代码如下所示 MainTabbar 是TabMaster控制器的storyboardID
AppDelegate *appdel = [UIApplication sharedApplication].delegate;
UIStoryboard *storyBoard = appdel.window.rootViewController.storyboard;
TabMasterController *tabController = [storyBoard instantiateViewControllerWithIdentifier:
@"MainTabbar"];
[appdel.window setRootViewController:tabController];
当我执行应用程序时,一切正常,我在登录屏幕上点击操作按钮后能够看到tabbar项目
现在是时候为注销标签栏项编写一些代码了,所以我选择了分配给主标签栏控制器的视图控制器,并添加了UITabbarController的委托指导,看起来像是这样的
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
// Since i have two tabbar items 1 generally means logout in my case
if (tabBarController.selectedIndex ==1) {
AppDelegate *appdel = [UIApplication sharedApplication].delegate;
UIStoryboard *storyBoard = appdel.window.rootViewController.storyboard;
ViewController *tabController = [storyBoard instantiateViewControllerWithIdentifier:
@"LoginVC"];
[appdel.window setRootViewController:tabController];
}
}
LoginVC 是Login View控制器的storyboardID
在我用来点击退出标签栏项目时添加上述代码后,我可以回到故事板中的登录界面。
希望有所帮助。
答案 3 :(得分:0)
您可以通过编程方式添加标签栏项目,也可以添加.gdbinit
如果以编程方式然后添加像
storyboard
将self.tabBarController.viewControllers = [NSArray arrayWithObjects:
[[UINavigationController alloc] initWithRootViewController:self.myContactsController],
[[UINavigationController alloc] initWithRootViewController:self.searchController],
[[UINavigationController alloc] initWithRootViewController:self.registrationController],
[[UINavigationController alloc] initWithRootViewController:self.loginController], nil];
设置为tabbarController
检查登录凭据后,成功
storyboard
答案 4 :(得分:0)
修正了它,它不是最佳解决方案,但它对我有用:
我做的是:
1-我从登录ViewController
删除了Tab Bar项目2-我在表格视图屏幕中插入了退出按钮
3-我将表格视图屏幕中的segues添加到故事板中的登录屏幕。
这样,如果用户点击退出按钮,他将被定向到登录屏幕&除非他输入他的证书,否则不能回到原来的位置。