0

我有一个带有两个子视图(1.UIScrollView 和 2.UIView)的 UIView(超级视图),第一个视图是登录表单,第二个视图包含启动动画(带有 UIImageView)。动画完成后,我将其从 superview 中删除,然后,在验证登录后,它会显示一个新的 TabBarViewController,其中有一个 Home 和其他导航控制器。主页导航控制器有一个注销按钮,注销操作在 tabBarViewController 中被称为方法“注销”,这种方法会自行关闭以返回登录表单。

@implementation LoginViewController

MainTabBarViewController *mainTabBarViewController = [[self storyboard] instantiateViewControllerWithIdentifier:@"MainTabBarViewController"];

[self presentViewController: mainTabBarViewController animated: YES completition: nil];

Logout works fine as long as the keyboard is never shown, otherwise the login form doesn´t appear, the superview does.

@implementation MainTabBarViewController

-(void)logout{

[self dismissViewControllerAnimated: YES completition: nil];

}

我注意到 loginView (1.ScrollView) 位于堆栈的顶部,并且 hidden 属性为 NO。

有任何想法吗?先感谢您

注意:我使用 ARC、故事板和 iOS 5

4

1 回答 1

0

我发现了问题,在我的 loginView 中,我调整 UIScrollView 中的框架以在键盘出现时移动到 TextField 的可见区域,我这样做是注册键盘通知,所以,当键盘出现在某处时,loginView 落入一个不可见区域,所以解决方案是在 loginView 出现时注册键盘通知,在消失时取消注册。

谢谢,对不起我的英语!!

于 2012-10-25T16:59:16.683 回答