xamarin.ios 中的 UITabBarController 不使用 StoryBoard

2024-01-10

继续我的问题这个帖子 https://stackoverflow.com/questions/47159814/adding-uitabbarcontroller-and-have-no-navigationcontroller/47160970?noredirect=1#comment81299156_47160970,我想发布一个完整的问题,这将是许多 xamarin.ios 开发人员的问题。

我的要求是在所有 UIViewController 中都包含 TabBar。所以,据我所知,有两种方法可以实现它。

First :

appDelegate -> 设置 RootViewController : TabController -> UVC1

在这种情况下,我有NULLNavigationController 和我将没有 navigationItem。并在

this.NavigationController.PushViewController(new SearchViewController(), true);

NavigationController 为 null 时会出错。

这是我在 AppDelegate 中的代码:

_tabController = 新的 TabController(); _window.RootViewController = _tabController;

和我的 TabController :

公共类 TabController : UITabBarController {

    UIViewController tab1, tab2, tab3, tab4;

    public TabController()
    {
        tab1 = new HomeViewController();
        tab1.TabBarItem.Image = UIImage.FromFile("Icons/Home.png");

        tab2 = new TagCategoryViewController(null, null, 1, null);
        tab2.TabBarItem.Image = UIImage.FromFile("Icons/Tag.png");

        tab3 = new SearchViewController();
        tab3.TabBarItem.Image = UIImage.FromFile("Icons/Search.png");

        tab4 = new ProfileViewController();
        tab4.TabBarItem.Image = UIImage.FromFile("Icons/Home.png");

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

        ViewControllers = tabs;
    }
}

第二种方式:

RootViewController -> 导航控制器 -> TabController -> UVC1 -> 新 UVC2 -> 无标签栏!

在这里,一切听起来都不错,但是当我导航到选项卡中不存在的新 ViewController 时,TabBar 将消失!

代码是:

_tabController = new TabController();
var navigationController = new UINavigationController(viewController);
_window.RootViewController = new UINavigationController(_tabController);

我能做些什么 ?任何想法?

我不使用故事板!


通过包裹你的所有UIViewController with UINavigationController您可以启用您想要的行为,但请确保删除TabBarController自从NavigationBar将重叠NavigationBar来自您的观点。

_window.RootViewController = _tabController;

以及您的看法:

tab1 = new UINavigationController(new HomeViewController());
tab1.TabBarItem.Image = UIImage.FromFile("Icons/Home.png");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xamarin.ios 中的 UITabBarController 不使用 StoryBoard 的相关文章

随机推荐