我的UISearchBar代码中发生了一些奇怪的事情,我无法弄清楚发生了什么。在我的应用程序中,我有一个视图控制器设置如下
查看控制器A --->查看控制器B
在View Controller A上,我有一个包含“page curl”按钮的工具栏。轻触此按钮后,我执行带有页面卷曲过渡样式的模态segue并显示View Controller B(这为用户提供了View Controller B位于View Controller A下方的效果,而实际上它们是两个截然不同的View Controllers) 。在View Controller B上,我有一个名为“Find Near Address”的按钮。当用户点击“查找近地址”时,我正在寻找无缝连续发生的两个操作:
到目前为止,我已经能够成功执行unwind segue但是当我试图在View Controller A上设置我的UISearchBar作为第一响应者时,键盘没有弹出!我完全迷失了,我不知道为什么会这样。
我采取的方法很简单。视图上的展开segue控制器B返回并进入名为(IBAction)returnToMainView:(UIStoryboardSegue *)segue.
的视图控制器A上的函数调用现在,在此函数中,我调用[self FindNearAddress]
,下面是我的FindNearAddress函数:
- (void)FindNearAddress {
[self.theSearchBar becomeFirstResponder];
}
我还实现了以下UISearchBarDelegate方法
- (void)searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar {
[self.theSearchBar setShowsCancelButton:YES animated:YES];
self.theSearchBar.text = @"";
}
- (void)searchBarCancelButtonClicked:(UISearchBar *)theSearchBar {
self.theSearchBar.text=@"Please enter a custom address..";
[self.theSearchBar setShowsCancelButton:NO animated:YES];
[self.theSearchBar resignFirstResponder];
}
任何人都可以帮助我/指出我做错了什么?我想指出我在视图控制器A上添加了一个调用我的“FindNearAddress”函数的测试按钮,这成功地使我的UISearchBar第一响应者并调出键盘。当我从View Controller B返回(展开)时,键盘只能弹出键盘,第一个响应器被设置但是键盘没有因某些奇怪的原因弹出。