如何在UISegmentedControl中更改值?

时间:2012-08-10 19:00:29

标签: xcode xcode4.3 uisegmentedcontrol

我在项目中设置了分段控件。我想在我的设置场景中使用它来控制方向是左侧还是右侧。我已经在我的故事板中进行了设置,这是我在SettingsViewController.h中的代码

#import <UIKit/UIKit.h>

@interface SettingsViewController : UIViewController
{
    IBOutlet UISegmentedControl *orientation;
}

@property (nonatomic, retain) UISegmentedControl *orientation;

- (IBAction) setOrientation;

@end

这是我在SettingsViewController.m中的代码

#import "SettingsViewController.h"

@implementation SettingsViewController

@synthesize orientation;


- (IBAction)setOrientation
{
    NSLog(@"index = %d\n", orientation.selectedSegmentIndex);
    if (orientation.selectedSegmentIndex == 0) {
        NSLog(@"left\n");
    }
    if (orientation.selectedSegmentIndex == 1) {
        NSLog(@"right\n");
    }

}  



- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad 
{
    [super viewDidLoad];

}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

@end

我想知道为什么当我选择控件的右侧时,值不会从0变为1。另外我想知道是否在我的.h中我需要声明IBOutlet,因为我不使用分段控件作为插座。我只是用它来选择选择哪一面,然后用它来设置应用程序的方向。

2 个答案:

答案 0 :(得分:0)

试试这个。使用valueChanged将它在Storyboard中连接到segmentedControl。

- (IBAction)segmentedControlChanged:(id)sender {
    UISegmentedControl *segmentedC = (UISegmentedControl *)sender;

    if (segmentedC.selectedSegmentIndex == 0) {
//      NSLog(@"selectedSegmentIndex == 0");
        [self selectFirstSegment];
    }
}

答案 1 :(得分:0)

在分段操作中设置方向横向或纵向..并在.m文件中以bool方向类型方法集结束

return yes; 

在所有.m文件中。