IOS 6 用のアプリの作成 - ボタンをタップすると新しい modalViewController が表示される mainViewController があります。その modalViewController には tableView があります。ユーザーがセルをタップすると、そのセルの値を取得して、mainViewController の変数に割り当てます。
問題は、viewDidAppear メソッドで出力すると常に NULL になることです。
これは modalViewController のデリゲート メソッドです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableString *event_id = [[self.events valueForKey:@"event_id"] objectAtIndex:indexPath.row];
NSLog(@"EVENT ID = %@", event_id); //This gives me actuall ID
[self.presentingViewController dismissViewControllerAnimated:YES completion:^{
[self.mainViewController setEventID:event_id];
}];
}
表示される場合は、完了ブロックを使用して設定します。私のmainViewControllerには、eventIDのプロパティがあります。私のmodalViewControllerにもあります
@class MainViewController
@interface ModalViewController : UITableViewController <UITableViewDataSource, UITableViewDelegate>{
IBOutlet UITableView *eventsTable;
}
@property (strong, nonatomic) MainViewController *mainViewController;
@end
何らかの理由で、viewDidAppear で出力しようとすると eventID が常に NULL になりますが、最初に設定したときに出力されます。私はそこに何が欠けていますか??
どんな助けでも大歓迎です。
編集:
私の MainViewController には、次のように設定された他のデリゲートが既にあります。
@interface MainViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, UIAlertViewDelegate, CLLocationManagerDelegate>
プロトコル デリゲート アプローチを使用して、ModalViewControllerDelegate のようにカスタム デリゲート宣言をそこに追加するにはどうすればよいでしょうか。