辞去 Push Segue 的第一响应者
Posted
技术标签:
【中文标题】辞去 Push Segue 的第一响应者【英文标题】:Resign First Responder on Push Segue 【发布时间】:2014-09-08 22:53:31 【问题描述】:我有一个 push 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 的情况下执行。
【问题讨论】:
【参考方案1】:一个快速的解决方案是从 IB 中的按钮中删除 segue,然后在两个视图控制器之间重新绘制它。 (换句话说,当拖出 segue 时,不要从按钮控制拖拽,从包含它的视图控制器控制拖拽)。给 segue 一个标识符,比如@"NextSegue"。
现在您可以通过自己触发 segue 来控制发生的顺序...
- (IBAction)finishPage:(id)sender
[self.presCell.presidentEmail resignFirstResponder];
[self performSegueWithIdentifier:@"NextSegue" sender:self];
【讨论】:
以上是关于辞去 Push Segue 的第一响应者的主要内容,如果未能解决你的问题,请参考以下文章
存储指针并辞去第一响应者后无法重新聚焦 UITextField
当要求 NSView 辞去第一响应者的职务时,如何获得 firstResponder-to-be?
UITextField, becomeFirstResponder, resignFirstResponder
使用 UINavigationController 时在 didSelectRowAtIndexPath 中辞职第一响应者