プロジェクトにセグメント化されたコントロールを設定しました。設定シーンで使用して、向きを横向きにするか、横向きにするかを制御したいと思います。ストーリーボードに設定しました。これが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を宣言する必要があるかどうか疑問に思いました。どちら側が選択されているかを取得し、それを使用してアプリの向きを設定します。