あるView Controller間で次のView Controllerにデータを渡そうとしている単純なマスター/ディテールアプリケーションがあります。ユーザーがからオプションを選択するモーダルView Controllerとして表示されるView Controllerが1つあり、選択UIPickerView
した行に応じて文字列が設定されます。ただし、View Controller が のdismissed
場合、文字列は null です。ユーザーがモーダル ビュー コントローラーのログイン ボタンを選択すると、マスター ビュー コントローラーが設定された文字列を使用してメソッドを開始するように通知が送信されUIPickerView
ますが、文字列が null であるため失敗し続けます。各View ControllerとivarのプロパティとしてparserURLを設定しました。
モーダル ビュー コントローラーで文字列を設定するコードを次に示します。
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
MasterViewController *master = [[MasterViewController alloc] init];
if (row == 0) {
[self.dropdownButton setImage:[UIImage imageNamed:@"dropdown"] forState:UIControlStateNormal];
}
if (row == 1) {
[self.dropdownButton setImage:[UIImage imageNamed:@"hbm"] forState:UIControlStateNormal];
[master setParserURL:@"http://98.246.50.81/firecom/xml/HBM.xml"];
NSLog(@"URL = %@", master.parserURL);
}
if (row == 2) {
[self.dropdownButton setImage:[UIImage imageNamed:@"hwh"] forState:UIControlStateNormal];
[master setParserURL:@"http://98.246.50.81/firecom/xml/HWH.xml"];
}
}
ログインボタン IBAction:
-(IBAction)loginButton:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
[[NSNotificationCenter defaultCenter] postNotificationName: @"login" object: nil];
}