作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 monotuch iOS 应用程序中使用以下代码来创建位置搜索机制:
public override void ViewDidLoad ()
{
NavigationItem .TitleView = LocationSearchBar ;
LocationSearchBar .OnEditingStarted += delegate {
if(lSAutoCompleteScreen ==null)
lSAutoCompleteScreen = new LSAutoCompleteScreen ();
lSAutoCompleteScreen .DefaultText = LocationSearchBar .Text;
this.NavigationController .PushViewController (lSAutoCompleteScreen,true );
};
}
第一次,代码工作正常。当用户开始编辑搜索栏时,应用会显示 lSAutoCompleteScreen
。用户搜索并在搜索用户后返回主视图。但问题是现在。当您再次开始编辑时。现在 OnEditingStarted
事件触发了两次!所以应用程序尝试将 lSAutoCompleteScreen
添加到 NavigationController
两次。在他第二次尝试添加应用程序时会崩溃。因为添加堆栈中已有的 View Controller 是无效的。
所以问题是为什么这个事件要触发两次?以及为什么仅在 iOS7 中事件会触发两次。在 iOS6 中它只触发一次。
最佳答案
每次加载 View 时,您都会向 OnEditingStarted 添加一个处理程序。尝试在类构造函数中分配处理程序,这样它只会分配一次。
关于ios - OnEditingStarted 在 iOS 7 中提高了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21353382/
我在我的 monotuch iOS 应用程序中使用以下代码来创建位置搜索机制: public override void ViewDidLoad () {
我是一名优秀的程序员,十分优秀!