gpt4 book ai didi

ios - 从后台返回时如何保留 UIView Controller 的状态

转载 作者:行者123 更新时间:2023-11-29 12:22:13 24 4
gpt4 key购买 nike

我创建了一个登录页面,其中包含两个 uiTextField 和登录按钮。当您尝试登录键盘时隐藏文本字段和按钮,所以我使用下面的代码从文本字段委托(delegate)方法上下移动 View Controller 。

-(void)animateTextField:(UITextField*)textField up:(BOOL)up
{
int movementDistance = -130; // tweak as needed
float movementDuration = 0.3f; // tweak as needed
int movement = (up ? movementDistance : -movementDistance);
[UIView beginAnimations: @"animateTextField" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.view.frame, 0, movement);

[UIView commitAnimations];

}

它工作正常。但是当我通过主页按钮关闭应用程序并再次重新启动时,它不会保留 View Controller 的位置,键盘仍然显示但 View Controller 的位置更改为默认值。

最佳答案

在您的 View Controller 类的 ViewDidLoad 中声明一个 NSNotification,当应用程序激活时,它将调用您想要的方法。


-(void)viewDidLoad
{

[[NSNotificationCenter defaultCenter]addObserver:self
selector:@selector(refreshViewOnActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];


// write rest of your code
}

- (void)refreshViewOnActive:(NSNotification *)notification {
if( [textField isFirstResponder]) // check whether keyboard is open or not / or editing is enabled for your textfeild
{
[self animateTextField:textField up:true]; //call your desired method
}
}

关于ios - 从后台返回时如何保留 UIView Controller 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272426/

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