1
我有一个带有6到7个选项卡的tabbar控制器,允许自定义(意味着用户可以更改选项卡栏的显示顺序)。并且选项卡1,3,5,7要求用户在查看视图中的任何内容之前先登录访问权限。iOS - 在UITabBarControler最佳实践中登录视图
我不知道如何识别哪个tabbar需要登录访问(我们可以创建@protocal或其他东西)。用户登录成功后。我不知道如何选择用户触摸过的最后一个tabbar。
我使用的appdelegate在AppDelegate中
-(BOOL)tabBarController:(UITabBarController *)aTabBar shouldSelectViewController:(UIViewController *)viewController {
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
BOOL hasValidLogin = [standardUserDefaults boolForKey:@"hasValidLogin"];
if (hasValidLogin == NO && /* I don't know to find a controller which requires login access*/) {
[LoginView showModal:viewController delegate:self];
return NO;
}
return YES;
}
编译标志confiming到UITabBarControllerDelegate - 编译标志LoginDelegate方法 -
-(void)loginViewController:(LoginView *)loginViewController didLoginSuccess:NSString *)userName {
NSLog((@"%s [Line %d] "), __func__, __LINE__);
NSLog(@"userName = %@", userName);
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setBool:YES forKey:@"hasValidLogin"];
[standardUserDefaults synchronize];
[self.tabBarController setSelected:/* How do i find the last touched tabbar*/];
}
任何良好做法,配方和代码片断,你能不能告诉我是赞赏。
我正在阅读亚光的iOS食谱。但我找不到与此相关的任何内容。
谢谢彼得!这是否是这样做的首选方式?有没有其他方法可以让我们做到这一点? – mohan 2012-03-02 05:48:01
谢谢彼得!这是否是这样做的首选方式?有没有其他方法可以让我们做到这一点?而当我试图按照你描述的方式,我得到 - “'NSInternalInconsistencyException',原因:'不允许更改由标签栏控制器管理的标签栏的代理。 ***第一次投掷时调用堆栈:“ – mohan 2012-03-02 05:57:08
我遇到了同样的问题。任何人都可以帮忙 – VvDPzZ 2012-11-02 07:51:00