Mvvmcross 是否支持 IOS BottomSheetController
Does Mvvmcross has support for IOS BottomSheetController
Mvvmcross 完美支持BottomSheetDialogFragment,Android。可以通过导航到它来指定视图模型和显示底部 sheet。
我没有找到 ios 的类似内容。
MVVMCross 是否支持 BottomSheetController?
非常感谢指向 Github 存储库或博客的链接。
我最终在 ios 演示器中使用了自定义演示属性和以下代码,它与导航服务配合得很好。
public override void RegisterAttributeTypes()
{
base.RegisterAttributeTypes();
AttributeTypesToActionsDictionary.Register<BottomSheetPresentationAttribute>(
ShowBottomSheet,
(viewModel, attribute) =>
{
if (_bottomSheetControllers.ContainsKey(viewModel))
{
var bottomSheet = _bottomSheetControllers[viewModel];
_bottomSheetControllers.Remove(bottomSheet);
bottomSheet.DismissViewController(true, null);
}
return Task.FromResult(true);
});
}
private Task<bool> ShowBottomSheet(Type viewType, BottomSheetPresentationAttribute attribute, MvxViewModelRequest request)
{
var contentController = BottomSheetsHelper.GetContentController(viewType);
contentController.OnViewCreate(() => (request as MvxViewModelInstanceRequest).ViewModelInstance);
var bottomSheet = new BottomSheetController(contentController);
_bottomSheetControllers.Add(contentController.ViewModel, bottomSheet);
Window.RootViewController.PresentViewController(bottomSheet, true, null);
return Task.FromResult(true);
}
private readonly Dictionary<object, BottomSheetController> _bottomSheetControllers = new Dictionary<object, BottomSheetController>();
Mvvmcross 完美支持BottomSheetDialogFragment,Android。可以通过导航到它来指定视图模型和显示底部 sheet。
我没有找到 ios 的类似内容。 MVVMCross 是否支持 BottomSheetController? 非常感谢指向 Github 存储库或博客的链接。
我最终在 ios 演示器中使用了自定义演示属性和以下代码,它与导航服务配合得很好。
public override void RegisterAttributeTypes()
{
base.RegisterAttributeTypes();
AttributeTypesToActionsDictionary.Register<BottomSheetPresentationAttribute>(
ShowBottomSheet,
(viewModel, attribute) =>
{
if (_bottomSheetControllers.ContainsKey(viewModel))
{
var bottomSheet = _bottomSheetControllers[viewModel];
_bottomSheetControllers.Remove(bottomSheet);
bottomSheet.DismissViewController(true, null);
}
return Task.FromResult(true);
});
}
private Task<bool> ShowBottomSheet(Type viewType, BottomSheetPresentationAttribute attribute, MvxViewModelRequest request)
{
var contentController = BottomSheetsHelper.GetContentController(viewType);
contentController.OnViewCreate(() => (request as MvxViewModelInstanceRequest).ViewModelInstance);
var bottomSheet = new BottomSheetController(contentController);
_bottomSheetControllers.Add(contentController.ViewModel, bottomSheet);
Window.RootViewController.PresentViewController(bottomSheet, true, null);
return Task.FromResult(true);
}
private readonly Dictionary<object, BottomSheetController> _bottomSheetControllers = new Dictionary<object, BottomSheetController>();