2

由于我是 Xamarin.IOS 的新手,所以我想问一个问题。我已按照此示例在 Xamarin.IOS 项目中添加 UITabBarController。

当我通过 TabController 的实例初始化 RootViewController 时,它工作正常并且我拥有所有选项卡。但是我的 NavigationController 设置为 null !代表着 :

  1. NavigationItem 将消失
  2. 此代码无法在 viewControllers 之间导航:

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

因为 NavigationController 是 null !这是我在 AppDelegate 中的代码:

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

和我的 TabController :

public class 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;
        }
    }

此外,我有很多 UIViewControllers 并且我以编程方式完成所有这些操作并且我不使用 StoryBoard !

4

1 回答 1

2

通过将您包装TabController在一个UINavigationController.

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

这样 NavigationController 属性不会为空,并且可以完成导航。

于 2017-11-07T14:58:20.247 回答