2017-08-01 2 views
1

Bon après-midi. J'utilisais Xamarin et MVVMCROSS version 5.0 pour créer plusieurs onglets et les naviguer entre eux. Dans mon code, j'ai une page racine qui dirige les pages:Définir le titre dans la vue dans mvvmcross 5.1

[MvxRootPresentation(WrapInNavigationController = true)] 
public sealed partial class RootView : MvxTabBarViewController<RootViewModel> 
{ 
    private bool _isPresentedFirstTime = true; 

    public RootView() 
    { 
     // ViewDidLoad(); 
    } 

    public override void ViewWillAppear(bool animated) 
    { 
     base.ViewWillAppear(animated); 

     if (ViewModel != null && _isPresentedFirstTime) 
     { 
      _isPresentedFirstTime = false; 

      ViewModel.ShowInitialViewModels(); 
     } 

     //Alterando o BackGround da tabBar 
     this.TabBar.BarTintColor = UIColor.FromRGBA(237, 146, 4, 1); 
     this.TabBar.Translucent = false; 
     //this.TabBar.Opaque = false; 
     //Cor do ícone antes de selecionado 
     this.TabBar.UnselectedItemTintColor = UIColor.White; 
     //Cor do ícone após seleção 
     this.TabBar.SelectedImageTintColor = UIColor.Black; 

     //Setando imagem antes e depois da seleção 
     this.TabBar.Items[4].Image = UIImage.FromBundle("valdemarMenuBar.png").ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); 
     this.TabBar.Items[4].SelectedImage = UIImage.FromBundle("valdemarMenuBar.png").ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); 
    } 

...

Dans chacune des vues, je mets les titres des barres de navigations selon l'exemple ci-dessous:

[MvxTabPresentation(WrapInNavigationController = true, TabIconName = "newOrder", TabName = "Novo Pedido")] 
public partial class NewOrder2ViewController : BaseScrollViewController 
{ 
    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 

     if (ViewModel == null) 
     { 
      return; 
     } 

     Title = "Novo Pedido"; 

     ... 

Lors de la mise à niveau vers la version 5.1.1 de MVVMCROSS, cette fonctionnalité s'est arrêtée. Quelqu'un peut-il m'aider à propos de ce qui s'est passé? Je n'ai rien trouvé dans la documentation de cette nouvelle version de MVVMCROSS.

Merci beaucoup d'avance.

+0

Je ne suis pas sûr de ce que vous demandez ici. Donc, le problème est que vous définissez le titre de l'onglet ici: 'Title =" Novo Pedido ";' et cela ne fonctionne tout simplement pas, non? – nmilcoff

+0

Dans "Title = 'New Order'", c'est ici que j'ai défini le titre UINavigationBar, qui ne fonctionne pas. Le titre de l'onglet que je définis dans: [MvxTabPresentation (WrapInNavigationController = true, TabIconName = "newOrder", TabName = "Nouvelle commande")] –

+0

Vous utilisez deux NavigationControllers, est-ce prévu? Mon soupçon est le NavigationBar auquel vous définissez le titre, est derrière l'autre – nmilcoff

Répondre

0

Vous voyez ce comportement étrange car vous avez deux UINavigationControllers sur chaque onglet, l'un sur l'autre (car votre TabBarViewController est enveloppé dans un contrôleur de navigation).

Pour réparer, il vous suffit de modifier la valeur de la propriété d'attribut:

[MvxRootPresentation(WrapInNavigationController = false)] 
public sealed partial class RootView : MvxTabBarViewController<RootViewModel> 
{ 
    //... 
}