我有一个简单的设置,使用一个viewcontroller(MainViewController)通过代理与另一个(JoinedViewController)交谈的故事板。一切都很好,直到prepareForSegue。在那里,我正在为接收视图控制器声明roomData和标签的文本,但都没有收到。代表未接收数据
MainViewController.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"JoinRoom"]) {
UINavigationController *navigationController = segue.destinationViewController;
JoinedViewController *joinedViewController = [[navigationController viewControllers]objectAtIndex:0];
joinedViewController.label.text = self.roomName;
joinedViewController.roomData = self.roomData;
joinedViewController.delegate = self;
}
}
MainViewController.h delcarations:
@interface MainViewController : UIViewController <JoinedViewControllerDelegate, UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *textField;
@property (nonatomic, copy) NSString *roomName;
@property (nonatomic, weak) S3ListObjectsResult *roomData;
JoinedViewController.h声明:
@interface JoinedViewController : UITableViewController
@property (nonatomic, weak) id <JoinedViewControllerDelegate> delegate;
@property (nonatomic, weak) S3ListObjectsResult *roomData;
@property (weak, nonatomic) IBOutlet UILabel *label;
尝试使用@property(nonatomic,assign)id delegate; ,请确保合成,但不要在JoinedViewController中释放委托。 –