我的问题是,我有5个UIViewController,我将所有内容放在一个UIScrollView中。在每个viewcontroller中我有一些UITextField,我需要将文本保存到NSUserDefaults。 我可以使用按钮来完成它,但每次用户滚动到下一个视图时如何保存?(没有任何按钮?) 谢谢.. 这是我用于第一个viewcontroller的工作代码
- (void)save:(id)sender {
NSString *a_name1 = [name text];
NSString *a_address = [address text];
NSString *a_address2 = [address2 text];
NSString *a_age = [age text]
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:a_name1 forKey:@"name"];
[defaults setObject:a_address forKey:@"address"];
[defaults setObject:a_address2 forKey:@"address2"];
[defaults setObject:a_age forKey:@"age"];
[defaults synchronize];
}
答案 0 :(得分:0)
您需要将代理设置为滚动视图并实施scrollViewDidEndDecelerating:
或scrollViewDidScroll:
并检查contentOffset以查看您是否更改了网页。
如果此时您检测到您更改了页面,则可以执行您需要执行的任何操作
答案 1 :(得分:0)
您可以使用scrollview的contentoffset
属性查找当前可见视图(或VC)并使用它来执行此过程
与scrollview委托一起实现,你可以实现这个
答案 2 :(得分:-1)
为每个UITextField创建一个ViewController似乎没什么用。如果我正确理解了你的问题,你只需要在UIViewController实例上。在viewController实例的view属性上添加UITextField-objects(覆盖viewDidLoad方法或在Interfacebuilder中添加它们)。 如果您的部署目标iOS 6实现了viewDidDisapear:方法,并使用上面的NSUserDefaults代码覆盖该方法。如果您的部署早于iOS 6,则可以覆盖viewDidUnload方法。