添加 UITabBarController 并且没有 NavigationController
Adding UITabBarController and have no NavigationController
由于我是 Xamarin.IOS 的新人,我想问一个问题。
我已按照 this example 在 Xamarin.IOS 项目中添加 UITabBarController。
当我通过 TabController 的实例初始化 RootViewController 时,它工作正常并且我拥有所有选项卡。
但是我的 NavigationController 设置为空!这意味着:
- NavigationItem 将消失
此代码无法在 viewController 之间导航:
this.NavigationController.PushViewController(new ProfileViewController(), true);
因为 NavigationController 为空!
这是我在 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!
通过将 TabController
包装在 UINavigationController
中。
_tabController = new TabController();
_window.RootViewController = new UINavigationController(_tabController);
这样 NavigationController 属性 就不会为 null 并且可以完成导航。
由于我是 Xamarin.IOS 的新人,我想问一个问题。 我已按照 this example 在 Xamarin.IOS 项目中添加 UITabBarController。
当我通过 TabController 的实例初始化 RootViewController 时,它工作正常并且我拥有所有选项卡。 但是我的 NavigationController 设置为空!这意味着:
- NavigationItem 将消失
此代码无法在 viewController 之间导航:
this.NavigationController.PushViewController(new ProfileViewController(), true);
因为 NavigationController 为空! 这是我在 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!
通过将 TabController
包装在 UINavigationController
中。
_tabController = new TabController();
_window.RootViewController = new UINavigationController(_tabController);
这样 NavigationController 属性 就不会为 null 并且可以完成导航。