我在项目中设置了分段控件。我想在我的设置场景中使用它来控制方向是左侧还是右侧。我已经在我的故事板中进行了设置,这是我在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,因为我不使用分段控件作为插座。我只是用它来选择选择哪一面,然后用它来设置应用程序的方向。
答案 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文件中。