2

私は、TabBarを持たないUIViewController(Connectionビュー)で始まるアプリケーション(Xamarin.IOS)を持っています。しかし、ユーザーがログオンしたら、作成したタブバーを他のビューに追加したいと思います。また、ユーザーがログアウトしたときに、TabBarを使用しないで接続ビューを表示したいとします。一部のUIViewControllerのXAMARIN.IOS UITabBarController

私はappDelegateで、TabBarのを表示したいとき、私はこのような_window初期化する必要があることを知っている:

_tabController = new TabController(); 
_window.RootViewController = _tabController; 
_window.MakeKeyAndVisible(); 

と私はTabBarのなしのビューを持つようにしたい場合は、ここでappDelegateは次のとおりです。

public class TabController : UITabBarController 
    { 

     UIViewController tab1, tab2, tab3, tab4; 

     public TabController() 
     { 
      tab1 = new UINavigationController(new ListViewController()); 
      tab1.Title = Texts.Home; 
      tab1.TabBarItem.Image = UIImage.FromFile("Icons/[email protected]"); 

      tab2 = new UINavigationController(new OViewController(1)); 
      tab2.Title = Texts.Categories; 
      tab2.TabBarItem.Image = UIImage.FromFile("Icons/[email protected]"); 

      tab3 = new UINavigationController(new SearchViewController()); 
      tab3.Title = Texts.Search; 
      tab3.TabBarItem.Image = UIImage.FromFile("Icons/[email protected]"); 

      tab4 = new UINavigationController(new BookmarkViewController(1)); 
      tab4.Title = Texts.Bookmarks; 
      tab4.TabBarItem.Image = UIImage.FromFile("Icons/[email protected]"); 


      var tabs = new UIViewController[] { 
       tab1, tab2, tab3, tab4 
      }; 

      this.TabBar.BackgroundColor = UIColor.White; 

      ViewControllers = tabs; 
     } 
    } 

しかし、どのように私はTabBaとのビューから移動することができます:このTabControllerと

viewController = new ConnectionViewController(); 
_window.RootViewController = new UINavigationController(viewController); 
_window.MakeKeyAndVisible(); 

それ以外のビューには、その逆もありますか?

私はXamarin.iOSでStoryBoardとIコードを使用しません。

答えて

4

タブ - >ノータブ

  1. プッシュ

    ViewController2 vc2 = new ViewController2(); 
    vc2.HidesBottomBarWhenPushed = true; //add this line 
    this.NavigationController.PushViewController(vc2, true); 
    
  2. 現在

    this.PresentViewController(new ViewController2(), true, null); 
    

enter image description here

ませタブ - >タブ

セット接続Page RootViewControllerとして最初に、あなたがしたいとき、それを変更してください。

コード:

public partial class AppDelegate : UIApplicationDelegate 
{ 
    UIWindow window; 

    public override bool FinishedLaunching (UIApplication app, NSDictionary options) 
    { 
     window = new UIWindow (UIScreen.MainScreen.Bounds); 

     window.RootViewController = new UINavigationController(new ViewController1()); 
     window.MakeKeyAndVisible(); 
     return true; 
    } 

    public void changeRootVC() 
    { 
     window.RootViewController = new TabController(); 
    } 
} 

そしてConnection Page

if(connected){ 
    AppDelegate app = UIApplication.SharedApplication.Delegate as AppDelegate; 
    app.changeRootVC(); 
} 

enter image description here

+0

ColeXiaでそれを変更し、それが隠しに最適です!それは魅力のように機能します! 逆の場合は、TabBarを使用せずにViewControllerを使用し、TabBarを使用して別のViewControllerにナビゲートするということです。詳細については、接続VCにはTabBarがなく、appDelegateにはTabBarではなくUINavigationControllerインスタンスを持つRootViewControllerがあり、ユーザーが接続するとTabBarを持つホームページにナビゲートされます。あなたはそれについて何か考えていますか? – Alireza

+0

私は最良の方法は、 '_tabController = new TabController(); _window.RootViewController = _tabController; _Window.MakeKeyAndVisible(); 'AppDelegate –

+0

から、私はConncetionページでTabBarは必要ありません!さらに、Connectionは自分のTabBarには存在しません! – Alireza

関連する問題