[IOS]退出后文本框扔保持输入内容

本文介绍如何在iOS应用中实现界面控件的状态保存与恢复功能。通过设置ViewController的RestorationID并添加必要的代码到AppDelegate及ViewController中,可以确保即使在应用退出后重新启动时,界面元素如文本框仍能保留其原始状态。

 

用户在文本框中输入一些内容,应用程序退出并且终止,当用户再次进来的时候,文本框中还会保持原来输

入的内容。

Interface BuilderScene中选中View Controller,打开右边的标识检查器 ,设置Restoration ID(恢复标识)为viewController

 

恢复标识是iOS 为了实现UI状态保持和恢复添加的设置项目。我们还需要在应用程序委托对象AppDelegate代 码部分做一些修改,添加的代码如下:

 

-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder{
    //allow to save UI state when app exit
    return YES;
}

-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder{
    //allow to restore UI state when app run
    return YES;
}

-(void)application:(UIApplication *)application willEncodeRestorableStateWithCoder:(NSCoder *)coder{
    //save UI data and state
    //save simple data
    [coder encodeFloat:2.0 forKey:@"Version"];
}

-(void)application:(UIApplication *)application didDecodeRestorableStateWithCoder:(NSCoder *)coder{
    //use when restore
    //restore data last time save
    float lastVer = [coder decodeFloatForKey:@"Version"];
    NSLog(@"last Ver = %f",lastVer);
}

 

 

想要实现具体界面中控件的保持和恢复,还需要在它的视图控制器中添加一些代码。我们在ViewController.m 中添加的代码如下:
{
        [super encodeRestorableStateWithCoder:coder];
        [coder encodeObject:self.txtField.text forKey:kSaveKey];
    }
    -(void)decodeRestorableStateWithCoder:(NSCoder *)coder
    {
        [super decodeRestorableStateWithCoder:coder];
        self.txtField.text = [coder decodeObjectForKey:kSaveKey];
    }
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值