저는 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
에서 사용하고 있지 않은 것으로 보인다.
'클래스 변수'란 정확히 무엇입니까? 명확한 코드를 게시하십시오. 일부 언어에서는 정적 필드를 의미합니다. –
@HenkHolterman : 질문을 편집했습니다. – testing
_class_ 변수는 공식적으로 C#에서 _field_라고 불립니다. –