0

我正在尝试运行 NPlus1DaysOfMvvmCross N=24 SplitView 教程。

它在iphone模拟器下运行良好。按钮导航到红色和蓝色视图,但它们看起来与视频不太一样(无边框)。

在 ipad 下,我只是在 mvvmcross 飞溅后得到一个灰屏。

输出看起来不错,我已经通过调试验证它正在这里创建演示者:

protected override IMvxTouchViewPresenter CreatePresenter()
{
    if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
        return new SplitPresenter(_window);

        return base.CreatePresenter();
}

我怎样才能弄清楚问题可能是什么?

Starting iPad Retina simulator 7.1
Launching application
Application launched. PID = 23709
Press enter to terminate the application
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.dll [External]
Thread started:  #2
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/Splitter.Touch/bin/iPhoneSimulator/Debug/SplitterTouch.exe
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.CrossCore.3.1.1-beta2/lib/MonoTouch/Cirrious.CrossCore.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.MvvmCrossLibraries.3.1.1-beta2/lib/MonoTouch/Cirrious.MvvmCross.Touch.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.MvvmCrossLibraries.3.1.1-beta2/lib/MonoTouch/Cirrious.MvvmCross.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.CrossCore.3.1.1-beta2/lib/MonoTouch/Cirrious.CrossCore.Touch.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.CrossCore.3.1.1-beta2/lib/MonoTouch/Cirrious.MvvmCross.Binding.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/Mono.Dynamic.Interpreter.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll [External]
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Windows.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.CrossCore.3.1.1-beta2/lib/MonoTouch/Cirrious.MvvmCross.Localization.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/packages/MvvmCross.HotTuna.CrossCore.3.1.1-beta2/lib/MonoTouch/Cirrious.MvvmCross.Binding.Touch.dll [External]
Loaded assembly: /Users/mike/NPlus1DaysOfMvvmCross/N-24-Split/Splitter.Core/bin/Debug/Splitter.Core.dll [External]
2014-07-08 15:11:52.913 SplitterTouch[23709:70b] mvx: Diagnostic:   0.00 Setup: PlatformServices start
2014-07-08 15:11:52.928 SplitterTouch[23709:70b] mvx: Diagnostic:   0.04 Setup: MvvmCross settings start
2014-07-08 15:11:52.929 SplitterTouch[23709:70b] mvx: Diagnostic:   0.04 Setup: Singleton Cache start
2014-07-08 15:11:52.930 SplitterTouch[23709:70b] mvx: Diagnostic:   0.04 Setup: Bootstrap actions
2014-07-08 15:11:52.938 SplitterTouch[23709:70b] mvx: Diagnostic:   0.05 Setup: StringToTypeParser start
2014-07-08 15:11:52.940 SplitterTouch[23709:70b] mvx: Diagnostic:   0.05 Setup: ViewModelFramework start
2014-07-08 15:11:52.941 SplitterTouch[23709:70b] mvx: Diagnostic:   0.05 Setup: PluginManagerFramework start
2014-07-08 15:11:52.942 SplitterTouch[23709:70b] mvx: Diagnostic:   0.05 Setup: App start
2014-07-08 15:11:52.960 SplitterTouch[23709:70b] mvx: Diagnostic:   0.07 Setup: ViewModelTypeFinder start
2014-07-08 15:11:52.962 SplitterTouch[23709:70b] mvx: Diagnostic:   0.07 Setup: ViewsContainer start
2014-07-08 15:11:52.963 SplitterTouch[23709:70b] mvx: Diagnostic:   0.07 Setup: ViewDispatcher start
2014-07-08 15:11:52.963 SplitterTouch[23709:70b] mvx: Diagnostic:   0.08 Setup: Views start
2014-07-08 15:11:52.976 SplitterTouch[23709:70b] mvx: Diagnostic:   0.09 Setup: CommandCollectionBuilder start
2014-07-08 15:11:52.977 SplitterTouch[23709:70b] mvx: Diagnostic:   0.09 Setup: NavigationSerializer start
2014-07-08 15:11:52.978 SplitterTouch[23709:70b] mvx: Diagnostic:   0.09 Setup: InpcInterception start
2014-07-08 15:11:52.978 SplitterTouch[23709:70b] mvx: Diagnostic:   0.09 Setup: LastChance start
2014-07-08 15:11:52.999 SplitterTouch[23709:70b] mvx: Diagnostic:   0.11 Setup: Secondary end
2014-07-08 15:11:53.000 SplitterTouch[23709:70b] mvx: Diagnostic:   0.11 Showing ViewModel FirstViewModel
2014-07-08 15:11:53.002 SplitterTouch[23709:70b] TouchNavigation: Diagnostic:   0.11 Navigate requested
4

1 回答 1

0

我通过为每个 SplitPresenter.Show() 请求创建一个新的 SplitViewController 来让它工作

    public override void Show(Cirrious.MvvmCross.ViewModels.MvxViewModelRequest request)
    {
        var viewController = (UIViewController)Mvx.Resolve<IMvxTouchViewCreator>().CreateView(request);

        if (request.ViewModelType == typeof(FirstViewModel))
            left = viewController;
        else
            right = viewController;


        _window.RootViewController = new SplitViewController ( left, right );
    }

完整示例: https ://github.com/mribbons/NPlus1-N-24-SplitView

我不确定这是否是坏的(tm)。

于 2014-07-08T22:32:48.003 回答