我想为我的应用程序(IOS8)添加搜索逻辑。我有简单的MvxTableViewController
,并显示我的数据UITableViewSource
。这里是: ...控制器:UISearchController和MvvmCross
MvxViewFor(typeof(MainViewModel))]
partial class MainController : MvxTableViewController
{
public MainController(IntPtr handle) : base(handle) { }
public override void ViewDidLoad()
{
base.ViewDidLoad();
// make background trasnsparent page
this.View.BackgroundColor = UIColor.Clear;
this.TableView.BackgroundColor = UIColor.Clear;
this.NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
this.SetBackground();
(this.DataContext as MainViewModel).PropertyChanged += this.ViewModelPropertyChanged;
}
private void SetBackground()
{
// set blured bg image
}
private void ViewModelPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
var viewModel = this.ViewModel as MainViewModel;
if (e.PropertyName == "Title")
{
this.Title = viewModel.Title;
}
else if (e.PropertyName == "Topics")
{
var tableSource = new TopicTableViewSource(viewModel.Topics);
tableSource.TappedCommand = viewModel.NavigateToChildrenPageCommand;
this.TableView.Source = tableSource;
this.TableView.ReloadData();
}
}
我读到的IOS搜索和选用UISearchController
为iOS8上的应用程序。但我不明白,我怎么可以将这个控制器添加到我的观点:( 我发现Xamarin(TableSearch)的示例 - 但他们不使用UITableViewSource
,我不明白我应该怎么做这个 我尝试添加控制器:
this.searchController = new UISearchController (this.searchTableController)
{
WeakDelegate = this,
DimsBackgroundDuringPresentation = false,
WeakSearchResultsUpdater = this,
};
this.searchController.SearchBar.SizeToFit();
this.TableView.TableHeaderView = searchController.SearchBar;
this.TableView.WeakDelegate = this;
this.searchController.SearchBar.WeakDelegate = this;
什么,我应该做this.searchTableController我是否需要将我的显示逻辑有
谢谢。 我看到了这个示例,它类似于xamarin samle([TableSearch](https://developer.xamarin.com/samples/monotouch/ios8%5CTableSearch/))。 但在这些示例中不使用UITableViewSource。 我不明白,我怎么能结合,我应该如何编辑我的逻辑正确的搜索工作。 –
@NikitaBondarenko加了解释 –
我明白了。我需要创建新的'TableViewController'来显示搜索结果。这应该是简单的控制器与项目列表和覆盖显示默认方法('RowsIsSection'和'GetCell'等),或者你自己'UITableViewSource'与更新此源的方法。 谢谢。 –