我有推送segue并希望在视图之间传输数据。如果用户点击导航栏中的下一个按钮,我需要一种不同的方式来辞退第一响应者。我有[textField resignFirstResponder];在导航栏按钮方法中但由于某种原因它在下一页viewDidLoad之后被调用。
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:[NSString stringWithFormat:@"thridClubPage"]]) {
thirdClubPage *nextPage = segue.destinationViewController;
nextPage.title = self.navigationItem.title;
nextPage.location = self.collegeString;
nextPage.people = self.membersString;
nextPage.leader = self.presidentString;
nextPage.Email = self.presidentEmailString;
}
}
- (IBAction)finishPage:(id)sender {
[self.presCell.presidentEmail resignFirstResponder];
}
segue在不重新签名textField的情况下执行。
答案 0 :(得分:0)
快速解决方案是从IB中的按钮中删除segue并在两个视图控制器之间重绘它。 (换句话说,当拖出segue时,不要从按钮控制拖动,从包含它的视图控制器进行控制拖动)。给segue一个标识符,比如@" NextSegue"。
现在你可以通过自己触发segue来控制发生的事情的顺序......
- (IBAction)finishPage:(id)sender {
[self.presCell.presidentEmail resignFirstResponder];
[self performSegueWithIdentifier:@"NextSegue" sender:self];
}