【问题标题】:Monotouch UITabBarController + UINavigationControllerMonotouch UITabBarController + UINavigationController
【发布时间】:2012-03-30 00:04:35
【问题描述】:

尝试在 MonoTouch 中同时使用 UITabBarController 和 UINavigationController 时我有点迷失了。

我可以创建一个基于导航的项目,并且只使用一个 navigationController 进行导航,很好。或者我可以添加一个 tabBarController 并导航到几个主屏幕,很好。

但是,如果存在 TabBarController,我似乎无法导航到另一个。例如,我正在做一个处理“foo”的应用程序,所以我的标签栏上有两个视图,FooHome 和 FooSettings。如果用户在 FooSettings 视图上单击“添加 Foo”之类的内容,我如何导航到新视图。

NavigationController.PushToView 似乎没有任何效果,我不想将视图添加到 tabController,因为它只有两个项目,既美观又简单。

我应该使用 this.View.AddSubView 吗?这个想法听起来像是一个对话框,我只是不确定如何使用 monoTouch...

【问题讨论】:

    标签: iphone xamarin.ios monodevelop


    【解决方案1】:

    我为此苦苦挣扎了好几个小时,这篇文章很有帮助。太感谢了。对于那些仍然在黑暗中一点点,这是我的代码:

        public override bool FinishedLaunching (UIApplication app, NSDictionary options)
        {
            // create a new window instance based on the screen size
            window = new UIWindow (UIScreen.MainScreen.Bounds);
    
            var vc1 = new VideosVC ();
            var vc2 = new ScheduleVC ();
            var vc3 = new TheCastVC ();
            var vc4 = new MerchandiseVC ();
    
            UINavigationController uinc1 = new UINavigationController(vc1);
            UINavigationController uinc2 = new UINavigationController(vc2);
            UINavigationController uinc3 = new UINavigationController(vc3);
            UINavigationController uinc4 = new UINavigationController(vc4);
    
            tabBarController = new UITabBarController ();
    
            tabBarController.ViewControllers = new UIViewController [] {
                uinc1,
                uinc2,
                uinc3,
                uinc4,
            };
    
            window.RootViewController = tabBarController;
    
            window.MakeKeyAndVisible ();
    
            return true;
        }
    

    【讨论】:

    • +1 为所有来的人编写代码解决方案!
    • 确实,感谢您发布您的代码。我遇到了同样的问题,你上面的代码对我来说实际上是即插即用的。
    【解决方案2】:

    将您的 FooHome 和 FooSettings 控制器添加到 UINavigationControllers 并将这些导航控制器设置为您的选项卡控制器。

    例如,第一个选项卡将包含一个导航控制器,其根控制器为 FooHome,第二个选项卡将包含一个导航控制器,其根控制器为 FooSettings。

    当您在 FooSettings 中点击 Add Foo 时,您会将新控制器推送到第二个选项卡中。

    【讨论】:

      【解决方案3】:

      另一种方法是使用情节提要来创建屏幕。将 UITabBarController 与 UINavigationController 一起使用非常容易。您只需在它们之间创建segues。花费你几个小时的事情本可以在几秒钟内完成。此外,通过使用情节提要,您可以非常快速地重新排列视图和选项卡,而无需编写代码;使其更易于维护。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        • 2010-11-24
        • 2011-11-28
        • 2011-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多