У меня есть вид входа, который приводит к UITabBarController
с четырьмя вкладками. Что я хочу, когда пароль пуст или ошибочен, пользователю будет предложено оставаться в том же представлении (вид входа), а не контроллере панели вкладок. Другими словами, я хочу иметь возможность просматривать панель вкладок, если пароль в порядке (не пустой и правильный). Можно ли продолжать просмотр имени входа, пока не будет указан правильный пароль? Есть идеи?Запретить пользователю вводить UITabBarController с логином
ответ
Как я понимаю, вы хотите отключить свою панель в какое-то время.
Если вы используете UITabBarController
вы можете использовать
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
return NO;
}
или вы можете отключить userInteractionEnabled
myTabBar.userInteractionEnabled = NO;
Вы можете также добавить некоторый подвид к вашим UITabBarController
, например, чтобы исчезнуть из вашего TabBar
UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
view.backgroundColor = [UIColor blackColor];
view.alpha = 0.3f;
[self.tabBarController.view addSubview:view];
[view release];
Как вы получаете ссылку на UITabBarController? – user1845360
Если вы пишете код в UIViewController, он имеет свойство self.tabBarController –
Я установил userInteractionEnabled, но по-прежнему показываю панель вкладок, как и раньше. – user1845360
Что вы описываете - это мода al view. Если у вас есть существующий контроллер входа, представить его:
[someViewController presentViewController:loginController animated:YES completion:nil]
Это расположит loginController
над всеми другими контроллерами. Когда пользователь ввел правильный пароль (! И только тогда), вы должны уволить его:
[self dismissViewControllerAnimated:YES completion:nil];
Если вы хотите loginController
иметь строку заголовка, не забудьте обернуть его в UINavigationController
и представить контроллер нав вместо ,
Всякий раз, когда я пытаюсь закрыть окно входа в систему, я получаю: Предупреждение: попытка отклонить из контроллера представления
Установили ли вы точку останова, чтобы код вызывался только один раз? Вы отклоняетесь в некотором коде, который вызывается в результате самой презентации (т. Е. 'ViewDidAppear:')? – jszumski
YourAppDelegate.m:
@interface YourAppDelegate()
@property(nonatomic, retain) UITabBarController *tabBarController;
@property(nonatomic, retain) UIViewController *loginViewController;
- (void)allocateAndShowLoginViewController;
- (void)allocateAndShowMenuController;
@end
@implementation YourAppDelegate
@synthesize tabBarController;
@synthesize loginViewController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[self.window makeKeyAndVisible];
[self allocateAndShowLoginViewController];
return YES;
}
- (void)allocateAndShowLoginViewController{
// Show Login View Controller (for example:)
// My Sample login view controller uses delegate to report when user has been logged in
self.loginViewController = [[[UIViewController alloc] initWithDelegate:self] autorelease];
self.window.rootViewController = loginViewController;
}
- (void)allocateAndShowTabBarController{
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
UINavigationController *viewController1 = [[[UINavigationController alloc] initWithRootViewController:[[[UIViewController alloc] init] autorelease]] autorelease];
UINavigationController *viewController2 = [[[UINavigationController alloc] initWithRootViewController:[[[UIViewController alloc] init] autorelease]] autorelease];
self.tabBarController.viewControllers = @[viewController1, viewController2];
self.tabBarController.customizableViewControllers = nil;
self.window.rootViewController = self.tabBarController;
}
#pragma mark - loginViewControllerDelegate
- (void)loginViewControllerDidLogin:(PSLoginViewController*)controller{
[self allocateAndShowMenuController];
}
Нечто подобное
- 1. Запретить пользователю вводить неверные операторы
- 2. Запретить пользователю вводить много точек
- 3. Запретить пользователю вводить скрипт в сообщение Wordpress
- 4. Как запретить пользователю вводить значение в EditBox
- 5. Как запретить пользователю вводить вход фильтра кендо?
- 6. Как запретить пользователю вводить сумму более 100
- 7. Запретить пользователю вводить номера в java Scanner?
- 8. Как запретить пользователю вводить числовые значения
- 9. Как запретить пользователю вводить прямой url
- 10. Запретить пользователю вводить больше символов в uitextview
- 11. Как запретить пользователю вводить конкретное поле формы?
- 12. Запретить пользователю вводить определенное слово в textarea
- 13. Как запретить пользователю вводить профиль других пользователей
- 14. запретить пользователю вводить 0 в качестве ввода
- 15. QLineEdit: Как запретить пользователю вводить звездочку (*)?
- 16. {iOS 6.0} UITextField - запретить пользователю вводить WhiteSpace
- 17. Запретить пользователю вводить определенный символ в TextBox
- 18. Поле ввода - запретить пользователю вводить 0 в качестве первой цифры
- 19. Как запретить пользователю вводить ноль в качестве входа?
- 20. as3 компонент textarea: запретить пользователю вводить разрыв строки
- 21. Как запретить пользователю вводить данные более одного раза (NSDate)
- 22. Запретить пользователю вводить только пробелы в текстовое поле?
- 23. Rails - как запретить пользователю вводить более одной записи за ассоциацию
- 24. Запретить пользователю вводить дополнительные символы при достижении максимальной длины
- 25. Как запретить пользователю вводить пространство в начале в текстовое поле?
- 26. Запретить пользователю вводить значение больше, чем int max?
- 27. Как запретить пользователю вводить определенные ключи в хром?
- 28. Как запретить пользователю вводить больше данных, чем максимальный лимит?
- 29. Как запретить пользователю вводить более двух цифр после десятичного числа?
- 30. Как запретить пользователю вводить значение в webview, Android?
Пожалуйста, дайте больше информации, вы используете раскадровку или instatiating все программно? – ararog
Я использую раскадровку. – user1845360
Является ли ваша кнопка входа в систему напрямую связанной с раскадровкой или вы вызываете segue с 'performSegueWithIdentifier'? – ararog