我使用Xamarin iOS。为什么UISearchDisplayController必须是类变量?
在ViewDidLoad
我实例化我UISearchBar
,UISearchDisplayController
,UISearchDisplayDelegate
和UITableViewSource
。因此我使用UISearchDisplayController
的类变量。因为我只在ViewDidLoad
中使用它,所以我将UISearchDisplayController
的类变量移到了局部变量中。
现在,奇怪的事情发生了:
- 的搜索没有了工作。无论我的输入是什么都没有改变。
- 此外,由于搜索条是标准行为,因此未移至导航栏。
现在我恢复了我的更改并重新运行。我检查了我的代码,没有什么不同。
但是,为什么我只能使用UISearchDisplayController
作为类变量?
编辑:
@class变量:
namespace MyApp
{
partial class MyTableListController : UITableViewController
{
// class variable
private UISearchDisplayController searchController;
public MyTableListController (IntPtr handle) : base (handle)
{
// do some init
}
#region View lifecycle
public override void ViewDidLoad(){
// ..
}
}
}
似乎控制器不仅在ViewDidLoad
使用,因此必须在整个类(例如类变量)可用。
“class variable”究竟是什么?邮政编码要清楚。在某些语言中,它意味着一个静态字段。 – 2014-09-30 11:13:27
@HenkHolterman:我编辑了这个问题。 – testing 2014-09-30 11:29:18
您的_class variable_在C#中被正式称为_field_。 – 2014-09-30 11:54:29