2014-10-18 67 views
1

不同視圖控制器我已經發現使用Objective-C這個問題提出,但我無法把它翻譯成C#Xamarin/Mvvmcross:打開時的iOS推送通知接收

例如 open-specific-view-when-opening-app-from-notification

基本上我想這樣做:

public override void ReceivedRemoteNotification (UIApplication application, NSDictionary userInfo) 
    { 
     string alert = (aps[new NSString("alert")] as NSString).ToString(); 
     Debug.WriteLine ("I want to open a specific ViewController and pass in my alert"); 
    } 

我實際使用mvvmcross來管理我的查看導航。所以理想情況下,我想以某種方式使用mvvmcross實現此導航。在mvvmcross我會做這個瀏覽到我的ViewControler:

  this.ShowViewModel<SpecificControllerViewModel>(); 

感謝

如果你看看ShowViewModel()的參數

回答

1

,它有辦法將值傳遞到視圖模型

這是描述here以及示例

您可以通過幾種方式實現。 您可以使用自定義消息。視圖模型可以註冊以接收該消息,並且您可以從ReceivedRemoteNotification閱讀here關於MvvmCross的Messenger消息發送它。

或者,您可以調用ShowViewModel。如果你看看ShowViewModel是如何實現的here,它採用了IMvxViewDispatcher單服務,讓你可以有以下的實用方法:

static void ShowViewModel<T>(object parameter) where T : IMvxViewModel 
    { 
     var viewDispatcher = Mvx.Resolve<IMvxViewDispatcher>(); 
     var request = MvxViewModelRequest.GetDefaultRequest(typeof(T)); 
     request.ParameterValues = ((object)parameter).ToSimplePropertyDictionary(); 
     viewDispatcher.ShowViewModel(request); 
    } 

我張貼有關這位在我的博客here

我覺得第二個辦法可以在應用程序時沒有運行(由FinishedLaunching收到)

+0

嗨安德烈接到通知的情況下甚至不工作。是的,我知道這一點。但如何從ReceivedRemoteNotification事件到我的viewmodel是我的問題 – Bob 2014-10-18 12:55:24

+0

好吧,我明白你的意思了,我編輯我的帖子 – 2014-10-18 17:41:17

+0

這是否回答你的問題? – 2014-10-20 11:58:42