Ios 我能';当我试图记住分段控件的选择时,请不要使用分段控件

Ios 我能';当我试图记住分段控件的选择时,请不要使用分段控件,ios,objective-c,uisegmentedcontrol,Ios,Objective C,Uisegmentedcontrol,我有个问题,我有一个分段控件和两个按钮 这两个按钮将引导用户选择输入的表视图控制器 但当用户选择一个分段控件的段并转到tableview控制器时,选择将返回默认值 - (IBAction)selectionOfTransportation:(id)sender { ran =((UISegmentedControl *)sender).selectedSegmentIndex; NSLog(@"%d",ran); switch (ran) { cas

我有个问题,我有一个分段控件和两个按钮

这两个按钮将引导用户选择输入的表视图控制器

但当用户选择一个分段控件的段并转到tableview控制器时,选择将返回默认值

- (IBAction)selectionOfTransportation:(id)sender {

     ran =((UISegmentedControl *)sender).selectedSegmentIndex;
    NSLog(@"%d",ran);

    switch (ran) {
        case 0://vapur
            NSLog(@"0 ");
             path = [[NSBundle mainBundle] pathForResource:@"vapurWeekdays" ofType:@"plist"];
            arrayOfPlist = [[NSArray alloc] initWithContentsOfFile:path];

            ran=0;
            break;
        case 1:
             NSLog(@"1");
            path = [[NSBundle mainBundle] pathForResource:@"denizotobus" ofType:@"plist"];
            arrayOfPlist = [[NSArray alloc] initWithContentsOfFile:path];
            ran=1;

            break;
        case 2:

            break;
    }

    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];



    [settings setInteger:ran forKey:@"MySelectedValueKey"];

}
这是我的密码

我将该值保存到NSUserDefaults并尝试更改选择,但似乎无法在任何位置使用segment.selectedSegmentIndex

起初,我将分段控件定义为一个操作,但我甚至尝试在.h文件中定义它

我如何使用它


或者更好的是,如何记住分段控件的选择请尝试此示例

xib中的第一个拖放段

在.h文件中

IBOutlet UISegmentedControl *mySegmentedControl;
在.m文件中

- (void)viewDidLoad
{
    [super viewDidLoad];

   [mySegmentedControl setSelectedSegmentIndex:0];
[mySegmentedControl addTarget:self action:@selector(segmentSwitch:)
                 forControlEvents:UIControlEventValueChanged];
}


- (IBAction)segmentSwitch:(id)sender
{
    int ran=mySegmentedControl.selectedSegmentIndex;

       **or**

    int ran;
    if(mySegmentedControl.selectedSegmentIndex == 0)
    {
      ran=0;
    }
    else if(mySegmentedControl.selectedSegmentIndex == 1)
    {
      ran=1;  
    }
    else if(mySegmentedControl.selectedSegmentIndex == 2)
    {
        ran=2;
    }
    else if(mySegmentedControl.selectedSegmentIndex == 3)
    {
        ran=3;
    }

}

您忘记同步userdefault。 如果不同步,则该值不同步

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings setInteger:ran forKey:@"MySelectedValueKey"];

//Add This Line
[settings synchronize];

这将同步userdefaults,您可以在其他控制器中使用

默认情况下,这应该发生……您不需要告诉它要突出显示哪个选项卡。您是否在UISegmentedControl的UIControlEventValueChanged事件上调用此方法“SelectionofTransport”?不,从未听说过UIControlEventValueChanged事件。我不明白,你是说即使视图控件改变,分段控件也会默认记住选择吗@除非您的意思是分段控件位于推送到导航堆栈上的UIViewController中,否则,分段控件不应更改其选择。您的意思是在主页上有一个UIViewController,它有一个分段控件和2个按钮,您可以更改选定的分段选项卡,按其中一个按钮来推一个新的视图控制器,更改一些值,按“上一步”按钮,分段控件将重置其以前选择的选项卡?