2012-06-14 4 views
4

Я искал на SO & в другом месте для MvvmCross & Модальный, но один существующий ответ нам не помогает.MvvmCross Используя modal ViewController с вкладки

Мы разрабатываем кросс-платформенное приложение, используя MonoTouch & MvvmCross, который кажется довольно мощной комбинацией. Однако у нас есть несколько проблем с навигацией, которую мы постепенно взламываем! Текущая проблема:

Приложение работает с TabBarController, и каждая вкладка имеет навигацию к дополнительным уровням - это отлично работает. Клиент, однако, хочет, чтобы кнопка «Старт» на одной из вкладок отображала модальный вид (который скрывает все остальное, особенно панель вкладок), который затем имеет свои собственные уровни, работающие так же, как UINavigationController, с возможностью чтобы вернуться в tabBarController в любое время.

Нам удалось отобразить один вид модального вида, но мы застряли в загрузке новых представлений и выталкивании назад.

Любая помощь/совет оценены!

ответ

5

Я думаю, что вы хотите сделать это, чтобы настроить презентатора таким образом, чтобы он обертывал ваш UIViewController в UINavigationController, а затем в этом случае представляет собой UINavigationController?

Для достижения этой цели, код последнего запроса на извлечение из @DeapSquatter может помочь - https://github.com/slodge/MvvmCross/pull/9 - Я думаю, что вы можете использовать его modal nav presenter для достижения эффекта вы ищете:

 if (view is IMvxModalTouchView) 
     { 
      if (_currentModalViewController != null) 
       throw new MvxException("Only one modal view controller at a time supported"); 

      var newNav = new UINavigationController(); 
      newNav.PushViewController(view as UIViewController, false); 

      _currentModalViewController = view as UIViewController; 

      PresentModalViewController(newNav, true); 
      return; 
     } 

архитектуры mvvmcross преднамеренно расширяем и настраиваем здесь - хотя мы включаем несколько базовых классов Presenter, очень вероятно, что люди захотят настроить, как различные представления будут представлены на основе приложения. Помимо простейших демонстрационных приложений, я ожидаю, что большинство приложений mvvmcross на прикосновении будут поставляться с пользовательским презентатором внутри.

Надежда, что помогает

Стюарт

+0

Большое спасибо за это - я не собираюсь, чтобы получить шанс попробовать его до после выходных, но я буду держать вас в курсе. – SomaMan

+0

Я сейчас изменяю презентатора, я вижу, как он используется - пример DeepSquatter помог, наконец, выяснить, что происходит. Когда наш проект еще более продвинут, и я уверен, что он делает то, что он должен делать, я загружу код на тот случай, если кто-нибудь сможет найти его полезным. Благодаря! – SomaMan

+1

Если, как и мы, вы сталкиваетесь с ситуацией, когда код showmodel show работает, но ничего не отображается визуально, дважды проверьте, что ваш CurrentTopViewController вашего Presenter - это то, что вы ожидаете от него. Мы должны были переопределить свойство Presenter «CurrentTopViewController», чтобы корректное представление представляло модальное представление. –

Смежные вопросы