Iphone 显示UIPickerview选定值

Iphone 显示UIPickerview选定值,iphone,ios,uipickerview,Iphone,Ios,Uipickerview,我有一个UIPickerView,它显示项目数组。当我选择一个项目时,它可以传递给我的所有视图控制器。现在我的问题是在移动到不同的视图控制器并返回到UIPIckerView后,它显示第一个数组项,而不是我选择的项。如何查看所选项目 //in viewDidLoad() itemsArray = [[NSArray alloc] initWithObjects:@"5", @"10", @"20", @"30", @"50",@"100", nil]; // if i select 20 and

我有一个
UIPickerView
,它显示项目数组。当我选择一个项目时,它可以传递给我的所有视图控制器。现在我的问题是在移动到不同的
视图控制器
并返回到
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

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

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

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

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

根据您想要实现的目标,以及您打开另一个视图的方式,它可能非常简单,只需声明
@property int currentIndex
,为selecteditem设置
currentIndex=indexForSelectedItem
,然后在您的
视图中将出现
,使用它来提醒您的视图上一次选择的内容。

可以通过不同的方式执行此操作

  • 在不同的VCs中使用传递值或引用
  • 将所选值存储在其他某个位置,该位置在整个运行时保持不变并使用它
    • 默认情况下
    • 在单例实例中[坏主意,内存一直保留,但 仍然是一种选择]
    • SQLite DB[好,好,仅在本例中仍然很难]
    • coredata[为此目的进行了说明]
    • 在文件中[从文件写入和读取操作]

      • 可以用不同的方式来实现

      • 在不同的VCs中使用传递值或引用
      • 将所选值存储在其他某个位置,该位置在整个运行时保持不变并使用它
        • 默认情况下
        • 在单例实例中[坏主意,内存一直保留,但 仍然是一种选择]
        • SQLite DB[好,好,仅在本例中仍然很难]
        • coredata[为此目的进行了说明]
        • 在文件中[从文件写入和读取操作]

        Hi use NSUserDefaults用于使用

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:[NSNumber numberWithInt:albumCount] forKey:@"AlbumCount"];
        [defaults synchronize];
        
        为了安全起见

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

        Hi use NSUserDefaults用于使用

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:[NSNumber numberWithInt:albumCount] forKey:@"AlbumCount"];
        [defaults synchronize];
        
        为了安全起见

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

        显示,如何在视图控制器之间传递数据。显示,如何在视图控制器之间传递数据。