以编程方式为 ViewController 创建选项卡栏

2024-02-10

我一直在考虑以编程方式向我的视图控制器添加一个选项卡栏,因为有一个滚动视图,如果它不在我的视图中间,我就无法将其放置在上面。我对如何添加它有点困惑。是否需要在我的ViewDidLoad方法或我的AppDelegate? 如果我有:

UITabBarController  *tabBar = [[UITabBarController alloc] init];
[self.view addSubview:tabBar.view];
[tabBar release]; 

我怎样才能将它分配到我的底部scrollview?

Thanks!

现在在我的 appDelegate 类中:

     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

   self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    UITabBarController *tabBarController = [[UITabBarController alloc] init];

    ViewController* vc = [[ViewController alloc] init];


    NSArray* controllers = [NSArray arrayWithObjects:vc, tabBarController, nil];
    tabBarController.viewControllers = controllers;

    [_window addSubview:tabBarController.view];

   self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
   return YES;

}

它崩溃了,不确定它是否是我错过的版本。

Edit:对于 Appdelegate.m 中其他想知道这一点的人:

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3, viewController4];

看看Apple给出的这个文档:视图控制器 http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html.

示例代码:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
   UITabBarController *tabBarController = [[UITabBarController alloc] init];

   FirstViewController* vc1 = [[FirstViewController alloc] init];
   SecondViewController* vc2 = [[SecondViewController alloc] init];

   NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil];
   tabBarController.viewControllers = controllers;

   // Add the tab bar controller's current view as a subview of the window
   [window addSubview:tabBarController.view];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式为 ViewController 创建选项卡栏 的相关文章

随机推荐

  • Symfony:使用全局变量

    我知道 远离全局变量 问题是我真的真的需要一个可以获取的价值 而且最重要的是可修改的来自应用程序的不同部分 它是我出于调试目的需要监视的某些操作的计数器 谷歌搜索任何与 Symfony 和全局变量相关的内容 总是让我得到建议使用 Conta
  • 如何从 API 获取数据并将其打印在列表中,然后发布到不同的 API? (扑)

    在我正在编写的注册过程页面之一中 我正在尝试打印其中的内容类别 总计api 打印所有id and category 到一个列表中 然后将新用户选择的任意数量发布到不同的 api 其中包含user id and 类别 id 最终 之前 我已经
  • 确保使用双比较和交换指令来实现无锁堆栈?

    假设64位x86 64架构和Intel第3 4代CPU 以下是 Concurrency in Action 一书第 202 页中堆栈的无锁实现 template
  • 从 ASP.NET 网站发送 SMS [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有办法使用 Web API 从 ASP NET 网站发送 SMS 我了解网络服务 但不知道如何从我的应用程序调用这些服务 Web 服务
  • 为什么 vscode pylint 会漏掉明显的错误?

    我在 Visual Studio Code 中打开了一个 python 文件 有一个明显的错误 使用未定义的变量 但 问题 下列出的 pylint 问题仅显示一长串小约定问题 在其上手动运行 pylint 与 vscode 分开 可以很好地
  • Ajax/Js 图像上传器:创建重复的预览图像

    我正在使用 Ajax 图像上传器SITE http dondedeportes es uploader previewer 我目前实现了创建重复的预览图像 一个出现在输入字段下 另一个将出现在页面中的其他位置 例如 这就是您选择的 问题是
  • 将 int 转换为 ASCII 字符

    I have int i 6 而且我要 char c 6 通过转换 有什么简单的方法可以推荐一下吗 EDIT 我还需要生成一个随机数 并转换为字符 然后添加一个 txt 并在 ifstream 中访问它 直接的方法 char digits
  • JavaScript Promises - 拒绝与抛出

    我读过几篇关于这个主题的文章 但我仍然不清楚两者之间是否有区别Promise reject与抛出错误 例如 使用 Promise reject return asyncIsPermitted then function result if
  • 结合UIView动画块和OpenGL ES渲染

    我正在开发一款 iP 游戏 并且使用 UIKit 和 OpenGL ES 2 0 UIKit 元素在 OpenGL 视图上渲染并占据大量 任意 屏幕空间 我必须承认苹果做得非常出色 游戏的帧率始终保持在60 FPS 为了得出这个结论 我做了
  • php自定义异常

    我想知道如何编写自定义异常处理程序 这样我就可以做类似的事情 throw new dbException sql message 并让它输出 您的查询有误 消息 消息 查询 sql 这里 行 行异常被抛出 文件 抛出文件异常 但我也想捕获例
  • 如何在您的应用程序中获取 Elastic Beanstalk 应用程序版本?

    我们希望能够在 PHP 代码中检索 elastic beanstalk 应用程序版本 我没有看到 EB 在任何服务器配置文件中将其传递给我们 我觉得这很奇怪 还有其他人知道我们如何才能得到这个吗 至少对于 Docker 容器 您可以使用存储
  • Python:在 CSV 中得到 \xa0 而不是空格,无法删除或转换

    我有一个与 python 中的编码问题相关的问题 IPython笔记本 由于此类问题非常常见且简单 但我仍然无法真正解决它 我有一个CSV http www montefiore ulg ac be glouppe 2012 2013 ch
  • Sails js - 创建资产的副本

    我们正在考虑将我们的项目移植到 Sails js 我们的静态资产非常大 超过 3 GB 因此 这造成了严重的限制 因为它使我们的应用程序的大小增加了一倍 我们可以修改 Sails js 以防止这种默认行为吗 或者有人可以推荐其他框架吗 Sa
  • 使用 pry 时立即在 Rails 控制台中同时评估多行代码?

    假设我们有pry安装好后 打开rails控制台 然后运行 times 1 5 10 30 72 sample 1 0 nums 1 72 num sample nums sample times 计算在第 2 行之后停止 因为第二行的输出超
  • 如何让Android系统对所有apk强制使用LANDSCAPE?

    为了实现这一点 我在android系统 v4 04 中进行了三种修改 它们是 1 WindowsManagerService java 修改了getOrientationFromWindowsLocked 2 Activity java 修
  • Angular2 rxjs - switchmap 捕获错误

    我希望能够处理调用时出错的任何错误this authService refreshToken 可以在 switchmap 块内处理错误吗 或者在这种情况下我该如何处理错误 post3 endpoint string body string
  • Android 中的“-journal”SQLite 数据库是什么?

    在我的andoid应用程序的数据库目录 data data com me myApp databases 中 对于我创建的每个sqlite数据库 都有一个同名的相应数据库 名称后附加 journal 例如 myDatabase myData
  • 在 web.config 中设置多个 SMTP 设置?

    我正在构建一个应用程序 需要在发送电子邮件时动态 编程地了解并使用不同的 SMTP 设置 我习惯使用 system net mailSettings 方法 但据我了解 这种方法一次只允许一个 SMTP 连接定义 由 SmtpClient 使
  • 灵活或居中页面 HTML CSS

    我必须使用灵活或居中的页面设计 即使用户屏幕分辨率为 800 600 也能正常工作 当我缩小页面时 元素会移动并改变它们的位置 灵活页面或居中页面正常吗 如果不是应该怎样 页面的 CSS 代码 body margin left auto m
  • 以编程方式为 ViewController 创建选项卡栏

    我一直在考虑以编程方式向我的视图控制器添加一个选项卡栏 因为有一个滚动视图 如果它不在我的视图中间 我就无法将其放置在上面 我对如何添加它有点困惑 是否需要在我的ViewDidLoad方法或我的AppDelegate 如果我有 UITabB