Storyboard 和 xib 在同一项目中使用

2023-12-31

我对 Objective-C 中的类如何工作的理解可能是一个根本性的误解。我正在使用故事板,但在这个应用程序中,我想为我的视图控制器之一上的文本字段创建一个简单的自定义日期选择器视图。但是,我似乎在从视图控制器访问日期选择器类的任何属性时遇到问题:

首先,我在 IB 中对 CustomDatePicker.xib 进行建模,如下所示:

我通过继承 UIView 创建了一个自定义类,如下所示:

自定义选择器.h

@interface CustomPickerView : UIView

@property (strong, nonatomic) IBOutlet UIDatePicker* datePicker;

@end

客户选择器.m

@implementation CustomPickerView

- (id)init
{
    self = [super initWithFrame:CGRectMake(0, 0, 320, 258)];
    if (self) {
        [self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"CustomPickerView" owner:self options:nil] objectAtIndex:0]];
    }
    return self;
}

在我的视图控制器中:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.customPickerView=[[CustomPickerView alloc] init];

    // THE MAIN ISSUE IS...
    // Following line has no effect on how picker is presented ???
    self.customPickerView.datePicker.datePickerMode=UIDatePickerModeTime;

    self.dateField.inputView=self.customPickerView;
}

当点击文本字段时,我的 CustomDatePicker 会正常弹出。但是,我似乎无法从 ViewController 的 viewDidLoad 方法中设置 .datePickerMode 。我可以更改 .datePickerMode 的唯一方法是通过 IB,当然这在运行时不起作用。

我已经在 IB 中连接了插座,并且能够从类中访问 datePicker.date,但不能访问 ViewController。

我研究并研究了多种实现这一概念的方法。我的问题不是如何实现 CustomDatePicker,而是“为什么我无法从实例化它的 ViewController 访问 CustomDatePicker 的属性?


当我加载 NIB 时,我成功更改了 datePickerMode 属性,如下所示:

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"CustomPickerView" owner:self options:nil];
    self.customPickerView = (CustomPickerView *)[nibArray objectAtIndex:0];
    self.customPickerView.datePicker.datePickerMode = UIDatePickerModeTime;

    self.dateField.inputView = self.customPickerView;
}

你也许可以删除你的自定义视图init方法一共有。我从未见过 NIB 装入init就像你正在做的方法。虽然这可能是可能的,但我相信这就是导致你的问题的原因。将 NIB 加载到viewDidLoadViewController 并直接设置它似乎更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Storyboard 和 xib 在同一项目中使用 的相关文章

  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • 在 iPhone 上搜索 PDF

    经过两天尝试使用 Quartz 从 PDF 中读取注释后 我成功做到了并且发布我的代码 https stackoverflow com questions 4080373 get pdf hyperlinks on ios with qua
  • 在 iOS 中,如何以编程方式填写 pdf 表单字段?

    我需要获取一个现有的 pdf 文件 并以编程方式填写带有文本的表单字段列表 然后保存 pdf 而不将其显示给用户 例如 如果 pdf 文件包含名为 LastName 和 FirstName 的字段 我想将 FirstName 的值设置为 L
  • 获取在 iOS UIFont 中追踪字符的路径

    假设我在 iOS 应用程序中使用了自定义字体 Foo 我已将其添加到我的项目 plist 等中 并且我能够渲染UILabels之类的就很好了 现在 如果我想找出可以 追踪 该字体中的字母 P 的点序列 我将如何获得该点序列 例如 假设我想使
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • 将带有 **kwargs 错误的值线程化并传递给 TypeError

    我对 Python 还很陌生 并且正在通过这篇文章研究如何使用线程来处理某些代码 Python 使用线程或队列迭代调用函数的 for 循环 https stackoverflow com questions 12868956 python
  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • NSString 对象的最大长度是多少?

    NSString 对象中可以保存的最大字符串大小是多少 这会动态变化吗 我假设 NSString 的硬限制是 NSUIntegerMax 个字符 因为 NSString 的索引和大小相关的方法返回 NSUInteger 由于当前能够运行 i
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 调用当前的 Modal ViewController 两次?

    我遇到了 UIViewController presentModalViewController 被调用两次的问题 我有一个模态视图 我试图调出另一个模态视图 但第二次没有任何反应 我怀疑它被隐藏了 还有其他人这样做过吗 您不能在同一个父控
  • 加速度计适用于 iphone/ipad 模拟器吗?

    据我所知 当我在 XCode 中使用 iPad 模拟器时 我的应用程序应该会触发加速计事件 但事实并非如此 我用谷歌搜索了一下 似乎加速度计没有在模拟器中实现 这是正确的吗 如果是这样 为什么他们会有 硬件 gt 摇动手势 菜单选项 我的代
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • 如何订阅设备方向(非界面方向)事件?

    在我的应用程序中 我想在设备旋转 方向更改 的情况下调用 CCScene myscene 中的某些方法 我禁用了自动旋转 因为我希望它不会发生 问题是 我想根据我的设备方向改变场景中的重力 我的代码 void onEnter super o
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 使用 Dirac 在 iPhone 中进行实时音高变化 [重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 上的实时音调变换 https stackoverflow com questions 1100495 real time pitch shifting on the iphone 我已经
  • 如何在 iPhone 中使用 XMPPFramework 创建 MultiUserChatRoom

    我正在 iPhone 中使用 XMPPFramwwork 开发聊天应用程序 我成功完成了一对一聊天 现在我想在我的应用程序中开发多用户聊天 我尝试了以下代码 但未调用 XMPPRoomDelegate 的任何委托方法 我如何开始创建聊天室
  • 自动生成的 Swift 桥接标头中“找不到接口声明”

    我当前的项目包含 Swift 和 Objective C 代码 两种类型的源文件都使用另一种语言的代码 当我进行完全清理并重新编译时 几乎每个 Swift 类声明都出现错误Module Swift h 形式为 Cannot find int
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • dispatch_semaphore_t 重用 - 我在这里缺少什么?

    我有一些代码 其中使用dispatch semaphore t 来表示操作完成 当信号量是成员变量时 它的行为似乎不正确 我将展示有效的示例代码和似乎无效的示例代码 implementation someClass dispatch sem

随机推荐

  • 无符号整数的差异 - 获取签名结果的标准支持方法?

    假设两个任意时间戳 uint32 t timestamp1 uint32 t timestamp2 除了转换为更大的有符号类型和相当冗长的 if else 的明显变体之外 是否有标准的一致方法来获得两者的有符号差异 事先不知道哪一个更大 但
  • 研究squashfs压缩比

    是否有任何工具可以检查现有的 squashfs 映像并找出每个文件的压缩率 如果它可以帮助我估计一个巨大的可执行文件中静态链接符号的闪存使用情况 那就加分了 7zip 程序可以提供该信息 使用7z l slt squasfsfile您将获得
  • selenium切换到iframe来定位元素

    selenium import webdriver from selenium webdriver support import expected conditions as EC from selenium webdriver suppo
  • 如何通过 BFS 和 DFS 遍历构建树

    我有BFS and DFS树的遍历 如何从这些遍历中重建树 例如 BFS Traversal 4 3 5 1 2 8 7 6 DFS Traversal 4 3 1 7 2 6 5 8 那么树就会像下面这样 4 3 5 2 1 8 6 7
  • 创建 SOCK_RAW 套接字仅用于发送数据而不使用任何 recvform()

    如果我创建一个类型为 SOCK RAW 的套接字只是为了发送一些数据而不接收任何数据 那么当内核继续接收网络数据包并将其数据报复制到某个缓冲区 应用程序的 时 是否会出现任何问题 换句话说 somebuffer被填满后会发生什么 错误或忽略
  • MySQL 分组依据和跳过对空值的分组

    select from dc deal group by collection id 在 collection id 列中我有值 1 3 3 4 4 5 空 空 上面的查询将返回行 1 2 3 4 空 但我想跳过对 NULL 值的分组并需要
  • HierarchyID:获取父母列表的所有后代 - 不起作用

    我正在处理这个线程 HierarchyID HierarchyID 获取父母列表的所有后代 https stackoverflow com questions 25079528 hierarchyid get all descendants
  • jQuery:将层次结构序列化为 Json

    假设我有一个嵌套的无序列表 我想将其序列化为 json 使用 jQuery 实现此目的的最佳方法是什么 如果有人需要的话 这是解决方案 document ready function var root root var jsonObj js
  • ReactJS - {this.props.children} 未定义

    我看过很多与此论点相关的帖子 但我无法理解为什么 this props children 在我的应用程序中未定义 我对 ReactJS 很陌生 从 开始App js这是我的主要组成部分我有这个 import React Component
  • 具有动态表单的 Django FormWizard

    我想实现一个简单的两部分 FormWizard 表格 1 将动态生成如下内容 class BuyAppleForm forms Form creditcard forms ChoiceField widget forms RadioSele
  • 安卓;地理编码器,为什么我收到“服务不可用”?

    我想在 Android 应用程序中使用地理编码器 我有以下代码片段来对其进行采样 public class LocatorGeo extends Activity Called when the activity is first crea
  • 不使用循环按位反转整数

    我想编写一个程序来反转整数的位 例如 11000101 至 10100011我知道如何使用循环来解决这个问题 但我遇到了使用字节移位来解决这个问题的解决方案 num gt gt 4 num lt lt 4 我不明白这是如何工作的 有人可以帮
  • R 数据框的实际限制

    我一直在阅读有关 read table 对于大型数据文件如何效率不高的信息 另外 R 不适合大型数据集 所以我想知道在哪里可以找到实际限制以及任何性能图表 1 读取不同大小的数据 2 处理不同大小的数据 实际上 我想知道性能何时恶化以及何时
  • 如何使用jsPDF在PDF中显示两页图像?

    我有一个 html 页面 其中我有一个按钮 每当我单击此按钮时 它都会使用 html2canvas 将整个 html 页面转换为数据图像 并使用 jsPDF 库将其放入 PDF 中 我正在使用的javascript是 printButton
  • 检测用户是否通过 javascript 打印内容

    我在检测 javascript 中的打印事件时遇到问题 例如 用户想要打印文档并在网页中按下打印 然后出现另一个窗口 例如从 Adob e Reader 进行打印 然后会出现 Adob e Reader 的另一个窗口 您可以在其中设置属性
  • 将所有 XML 特殊字符转换回常规字符(在 SQL 内)

    如何将 XML 中的所有特殊字符转换为 ASCII 值 例如 DECLARE xml XML SELECT abc xyz gt lt FOR XML PATH SELECT xml xml is now abc amp xyz gt lt
  • 如何解决具有 -ms-transform:translate 的固定位置父级的 IE9 滚动重绘问题?

    我有一个父 div 具有 ms transform translateX 50 translateY 40 位置 固定 我的内部子 div 具有固定高度和溢出 auto 在 IE9 仅真正的 IE9 中 这会导致奇怪的滚动问题 它无法正确重
  • 如何使用 PowerShell 批量重命名文件?

    我正在尝试递归地重命名一堆TFS http en wikipedia org wiki Team Foundation Server文件夹使用tf rename 电源外壳 http en wikipedia org wiki Windows
  • 从 angularjs 中的验证中删除最后一个 ng-form

    I have a master detail form in angularjs The form is typical transactions form with some master data like Name type etc
  • Storyboard 和 xib 在同一项目中使用

    我对 Objective C 中的类如何工作的理解可能是一个根本性的误解 我正在使用故事板 但在这个应用程序中 我想为我的视图控制器之一上的文本字段创建一个简单的自定义日期选择器视图 但是 我似乎在从视图控制器访问日期选择器类的任何属性时遇