繁体   English   中英

显示UIPickerview选定的值

[英]Showing UIPickerview selected value

我有一个UIPickerView ,它显示项目的数组。 当我选择一个项目时,它可以传递给我所有的视图控制器。 现在我的问题是移至其他view controllers并返回到UIPIckerView它显示了第一个数组项,而不是我选择的项。 如何查看所选项目?

//in viewDidLoad()
itemsArray = [[NSArray alloc] initWithObjects:@"5", @"10", @"20", @"30", @"50",@"100", nil];

// if i select 20 and moved to other pages of my controllers and 
// return to the UIPickerView i can see the 5 as selected not the 20

有什么建议么?

嗨,请使用NSUserDefaults来保存当前选定的值,

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithInt:albumCount] forKey:@"AlbumCount"];
[defaults synchronize];

为了找回缘故,

albumCount = [defaults integerForKey:@"AlbumCount"];

您将需要将所选值存储在某个地方,作为视图控制器或模型上的属性,或者存储在诸如NSUserDefaults类的中央位置。

然后,当您使用UIPickerView返回该视图控制器时,可以使用- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated以设置值。

根据您要实现的目标以及如何打开进一步的视图,它可能很简单, currentIndex = indexForSelectedItem声明@property int currentIndex ,设置currentIndex = indexForSelectedItem ,然后在viewWillAppear使用它来提醒您的视图最后选择的是什么。

可以用不同的方式做到

  1. 在不同的VC中使用按值传递或引用
  2. 将选定的值存储在整个运行时持久的其他位置,并使用它

喜欢

  • NSUserdefaults,
  • 在单例实例内部[坏主意,内存一直保留,但仍然是一个选择]
  • SQLite DB [好的,好的,在这种情况下仍然很难]
  • coredata [为此目的而复杂]
  • 在文件中[写入和读取文件操作]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM