我有一個使用MvvmCross框架的MonoTouch應用程序的視圖,我想顯示模式(NavigationController.PresentModalViewController)。如何在MvvmCross中指定要推送爲模態的視圖?
4
A
回答
7
MvvmCross從所有ViewModel只是「普通頁面」的前提開始 - 所以在iOS/MonoTouch中意味着使用UINavigationController呈現的UIViewControllers。
要擺脫這個前提 - 朝着標籤式顯示器,模式顯示器,分體式控制器,彈出式窗口等 - 您可以在MonoTouch應用程序中調整Presenter邏輯。
演示者的工作就是實現:
public interface IMvxTouchViewPresenter
{
void Show(MvxShowViewModelRequest view);
void Close(IMvxViewModel viewModel);
void CloseModalViewController();
void ClearBackStack();
bool PresentModalViewController(UIViewController controller, bool animated);
void NativeModalViewControllerDisappearedOnItsOwn();
}
用於您的應用程序的演示中的AppDelegate建設選擇 - 例如看看TwitterSearch如何爲iPhone和iPad構建不同的演示者。
幸運的是,簡單的模態的支持,提供了標準的主持人之一是MvxModalSupportTouchViewPresenter.cs
這主持人查看是否被提出的觀點有IMvxModalTouchView
標記接口 - 它測試view is IMvxModalTouchView
。如果這個界面存在,那麼它使用視圖的模態呈現而不是「正常導航」。
要使用此功能,您的AppDelegate代碼更改爲:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
window = new UIWindow(UIScreen.MainScreen.Bounds);
// initialize app for single screen iPhone display
var presenter = new MvxModalSupportTouchViewPresenter(this, window);
var setup = new Setup(this, presenter);
setup.Initialize();
// start the app
var start = this.GetService<IMvxStartNavigation>();
start.Start();
window.MakeKeyAndVisible();
return true;
}
然後標記接口添加到您的視圖模式(S):
public class MyView : MvxBindingTouchViewController<MyViewModel>, IMvxModalTouchView
{
// ....
}
相關問題
- 1. UINavigation:如何從呈現的模態視圖推送視圖
- 2. 如何從didFinishPickingMediaWithInfo推送模式視圖
- 3. 如何將視圖模型綁定到MVVMCROSS中的UserControl?
- 4. 如何從模態視圖推UIViewController
- 5. 想要在推送視圖中使用objectAtIndex:indexPath.row作爲新查詢
- 6. 從推送通知中推送視圖
- 7. 推送通知和MVVMCross
- 8. 如何在視圖模型傳遞價值,其他視圖模型與mvvmcross UWP
- 9. 爲CakePHP指定的模型視圖
- 10. MvvmCross在從另一視圖模型
- 11. MvvmCross - 爲多個視圖共享視圖模型
- 12. 在mvvmcross中顯示來自非視圖/視圖模型的視圖
- 13. 如何綁定到視圖的MvvmCross中的layout_weight?
- 14. 如何檢測UIviewcontroller在推送子視圖後再次變爲活動狀態?
- 15. MvvmCross中的複合視圖
- 16. MvvmCross:視圖模型視圖模型的另一個情景
- 17. 我可以從另一個模態視圖控制器中推送一個模態視圖控制器嗎?
- 18. 將一個後退按鈕置於模態視圖中被另一個模態視圖推送
- 19. UINavigationController推送視圖
- 20. 爲什麼MvvmCross中的MvxModalSupportTouchViewPresenter僅支持一個模式視圖
- 21. 如何使用自定義視圖模擬UIAlertView模態行爲?
- 22. 從模態或推送視圖調用父方法presentationViewController
- 23. 以兩種方式顯示視圖(推送和模態)
- 24. 如何在yii視圖中動態指定頁面大小?
- 25. 如何推送根視圖控制器?
- 26. 如何從UITableViewCell推送視圖
- 27. 如何從TableViewCell推送新視圖?
- 28. 如何從網頁推送視圖?
- 29. 如何爲coffeescript視圖指定變體?
- 30. 如何爲2個視圖指定onActivityResult()?
尼斯一個斯圖爾特。順便說一下,偉大的框架。這是一個大型項目的基礎。 – Kevin
很酷 - 如果您有小問題,請在http://jabbr.net/#/rooms/mvvmcross上找到我們,否則,使用SO是完美的 – Stuart
另外,對於任何合理大小的iPhone/iPad應用程序,我希望您在某些時候最終會寫出自己的主持人 - 尤其是iPad。 – Stuart