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 的相关文章

  • MonoTouch 和 LINQ - 由于对象的当前状态,操作无效

    我有一个应用程序 在 Mac 上使用 Monotouch C 作为前端 从后端 VS2010 中的 WCF 服务中提取数据 昨晚我离开前一切都像做梦一样顺利 而今天 我不确定发生了什么 我所看到的是 这是来自 Monotouch 的 lin
  • 你能检测到 UIViewController 何时被解除或弹出吗?

    每当我的视图控制器之一被解除 弹出 卸载时 我都需要在共享资源中执行一些清理 这可能是当用户点击该单个屏幕上的后退按钮时 或者调用 popToRootViewController 时 在这种情况下 理想情况下我能够清除弹出的每个控制器 显而
  • Xamarin.UITest:如何检索列表中的所有元素

    我有一个包含 500 个元素的列表 当我使用app Query在页面上 Xamarin UITest 只给了我 6 个元素 因为 UI 中只有 6 个元素可见 如何从 UITest 内的列表中检索所有 500 个元素 如上所述 预期行为ap
  • Json DeserializeObject 仅由 iOS 引发异常

    我在 Android 上没有这个问题 但是当我在 iOS 中运行相同的工作代码时 我得到了异常 public async Task Login string inlogData string password string gcm Logi
  • TinyIoC、Xamarin.iOS、链接器设置

    我正在尝试让 TinyIoC 在 Xamarin iOS 上运行 但运气不太好 我的项目链接器设置设置为 仅链接 SDK 程序集 我实际上正在做这么简单的事情 public interface IPerson int age get pub
  • 如何使用 MonoTouch 为 UIButton Alpha 属性设置动画

    我有一个带有 Alpha 属性的简单 UIButton 我想将其从 1 0f 设置为 0 0f 然后再返回 1 0f 这基本上是对 TouchDown 的响应 另外 如果我调用的例程不在主线程上 在线程池上调用的异步委托 我需要做什么特别的
  • iOS AppDelegate 和 ViewController 类之间的区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我如何知道 AppDelegate 类中包含哪些代码以及 ViewController 类中包含哪些代码 这两个类都有类似的方法vie
  • 将自定义值存储在 EKEvent(iPhone 日历)中

    我的应用程序与设备日历集成 当新项目添加到我的应用程序时 我们会为此项目创建一个日历条目 如果项目被编辑 我们需要更新日历项目 我现在所做的是将 GUID 放入 EKEvent Notes 中 但显然这对用户是可见的 因此我们添加文本 请勿
  • 在 Monogame 和 UIKit 之间切换

    我一直在搜索和搜索 但似乎找不到适合我想做的事情的解决方案 而且我几乎已经到了不得不问它是否可能的地步 我正在使用 Xamarin Studio 开发 iOS 应用程序 我有几个不同的屏幕设置为 UIViewController 它们运行良
  • UINavigationBar setBackgroundImage 在 AppDelegate 中使用 Swift

    我正在尝试在 Swift 的 App Delegate 中全局设置导航栏的背景图像 我可以让它在单独的视图控制器上工作 如下所示 var topBar UINavigationBar topBar setBackgroundImage UI
  • Xamarin Dim 页面(主详细信息页面)

    因此 对于 Android 当显示主从页面的母版页时 母版页会被 黑色暗淡 视图覆盖 因此很容易用眼睛区分这两个页面 在 iOS 中 详细信息页面不会变暗 因此更难区分视图 有没有办法用 黑色半透明 的 BoxView 或 Frame 覆盖
  • 如何在 Xamarin.iOS 应用程序中创建导航?

    我习惯于与Xamarin Forms 我用 XAML 或 C 创建一个页面并导航到它 但现在这是我第一次尝试创建一个不适合的 iOS 应用程序Xamarin Forms 我在 Windows PC 上的 Visual Studio 中进行此
  • Xamarin Forms WebView 打开外部链接

    我的应用程序中有一个网络视图 当单击外部链接 在普通浏览器中在新选项卡中打开 时 我无法返回我的网站 当打开一个新标签时 有可能像 Gmail 一样关闭该标签的菜单吗 目的是 每当单击链接时 用户都可以选择使用哪个选项来查看内容 例如单击链
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • 如何使用 MonoTouch 在 UIKeyboard 之上添加 UIToolbar?

    我按照 Obj C 中的示例进行操作定制 iPhone 键盘 https stackoverflow com questions 1610542 custom iphone keyboard 1612549 1612549但是 为了在 Wi
  • 添加 UITabBarController 时出错

    我在用着单点触控C 编写具有多个不同屏幕的 iPhone 应用程序 为了简单起见 我将仅描述导致我遇到问题的控制器的几个屏幕 我遇到的问题是 当我创建一个继承自的类时 我收到此错误消息UITabBar控制器 应用程序窗口应该有一个根视图控制
  • 适用于 iOS 的 MvvmCross 汉堡菜单

    我在用着https www marcbruins nl xamarin ios hamburger menu mvvmcross https www marcbruins nl xamarin ios hamburger menu mvvm
  • 如何在 xamarin.ios 中全局隐藏导航栏后退按钮标题

    我在 AppDelegate 中使用了这段代码 UIBarButtonItem Appearance SetBackButtonTitlePositionAdjustment new UIOffset 100 60 UIBarMetrics
  • UIImage 数据始终处于横向模式

    似乎当我用相机以肖像模式拍照时 UIImage具有正确的尺寸 长宽比 1536x2048 3 4 和方向 右 导出到文件 带有UIImage AsPNG Save 它始终以横向模式显示 2048x1536 4 3 这是真的吗 还是我做错了什
  • iPhone 相当于 Application.DoEvents();

    iPHone 我们使用 MonoTouch 但 Obj C 答案还可以 我的单例域对象需要一段时间才能获取所有数据 因此它在线程中内部运行部分获取数据 我需要通知 UI 域已完成 目前我正在这样做 有没有更好的办法 在 WinForms 中

随机推荐