gpt4 book ai didi

iOS - UITabBarControler 最佳实践中的登录 View

转载 作者:行者123 更新时间:2023-11-28 17:37:28 25 4
gpt4 key购买 nike

我有 tabbar controller,上面有 6 到 7 个选项卡,允许自定义(意味着用户可以更改选项卡栏显示的顺序)。选项卡 1、3、5、7 要求用户在查看 View 上的任何内容之前先登录访问。

我不知道如何识别哪个标签栏需要登录访问(我们可以创建@protocal 或其他东西)。并且在用户登录成功之后。我不知道如何选择用户触摸的最后一个标签栏。

我通过在 AppDelegate 中确认 UITabBarControllerDelegate 使用 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;
}

语用标记 -pragma mark 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 食谱。但是我找不到与此相关的任何内容。

最佳答案

关注 UITabBarDelegate didSelectItem。跟踪先前选择的选项卡项。如果用户未通过身份验证,则弹出您的身份验证屏幕并选择之前选择的选项卡项。这是一个例子。

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {


switch ( item.tag ) {

case ME_TAB_BAR_TAG:

if ( [AppHelper checkAuthentication] ) {

[self showMe:YES];

} else if ( previousItem ) {

[tabBar setSelectedItem:previousItem];

return;

}

break;

case ITEMS_TAB_BAR_TAG:

[self showMe:NO];

break;

case CREATE_TAB_BAR_TAG:

if ( [AppHelper checkAuthentication] ) {

[self createNewItem];

} else if ( previousItem ) {

[tabBar setSelectedItem:previousItem];

return;

}

break;

}

previousItem = item;


}

关于iOS - UITabBarControler 最佳实践中的登录 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9447121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com