我正在使用Xamarin
和MvvmCross
在我的应用程序主页中,点击排序按钮,我在Formsheeet
进入。
在主页的ViewDidLoad
private NSObject temp;
public override void ViewDidLoad ()
{
base. ViewDidLoad ();
sortOptionsViewController = new SortOptionsViewController();
sortOptionsViewController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
sortOptionsViewController.ModalTransitionStyle = UIModalTransitionStyle.cover Vertical;
sortButton.TouchUpInside += (sender, e) => {
this.PresentViewController(sortOptionsViewController, true, null);
};
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
temp = NSNotificationCenter.DefaultCenter.AddObserver("CategorySelected", FilterSites);
}
public override void ViewWillDisappear(bool animated)
{
base.ViewWillDisappear(animated);
if (temp != null)
{
NSNotificationCenter.DefaultCenter.remove Observer(temp);
}
}
在SortOptionsViewController
我正在通知这个
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
NSNotificationCenter.DefaultCenter.PostNotificationName("CategorySelected", indexPath);
}
由于Fomrsheet在点击排序按钮时覆盖了整个屏幕,因此在调用ViewWillAppear
期间,已在功能ViewWillDisappear
中注册的观察者被删除。
有什么建议吗?有关如何减少Fomrsheet大小的任何建议吗?
非常感谢!
答案 0 :(得分:0)
响应CategorySelected的代码是什么。
你在哪里解雇sortOptionsViewController?
注册观察员 sortButton.TouchUpInside
在sortOptionsViewController被解除时删除。
显示两个ViewControllers的完整代码以获得更具体的建议