私の提示ビューコントローラには、次の prepareForSegue 関数があります
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([[segue identifier] isEqualToString:@"goToView2"]){
ViewController2 *controller2 = [segue destinationViewController];
controller2.multiplierStepper.value = 7.0;
controller2.randomString = @"string set from Scene 1";
}
}
ViewController2 には、UIStepper の値と NSString のアウトレットがあります
@property (strong, nonatomic) IBOutlet UIStepper *multiplierStepper;
@property (strong, nonatomic) NSString *randomString;
ViewController2.m viewDidLoad では、表示中のビュー コントローラーによって上記で設定された値をテストしています。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"in viewDidLoad: self.multiplierStepper.value: %f", self.multiplierStepper.value);
NSLog(@"in viewDidLoad: randomstring: %@", self.randomString);
}
コンソール出力は NSString に対して適切に機能しますが、UIStepper 値は常に Interface Builder で定義された初期値を示します (1)。
[10682:f803] in viewDidLoad: self.multiplierStepper.value: 1.000000
[10682:f803] in viewDidLoad: randomstring: string set from Scene 1
答えはおそらく明白ですが、表示中のView Controllerから目的のView Controllerにステッパーの値を設定する方法がわかりません。
私が間違っていることはありますか?