У меня есть контроллер вкладок с 6-7 вкладками на нем с возможностью настройки (это означает, что пользователь может изменить порядок отображения панели вкладок).А вкладка 1,3,5,7 требует от пользователя входа в систему, прежде чем он увидит любое содержимое в представлении.
Я не знаю, как определить, какая вкладка требует входа в систему (мы можем создать @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;
}
знак прагмы - знак прагмы Методы 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.Но я не смог найти ничего, связанного с этим.