- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如果我创建一个单独的 nib 文件并将其加载到我的 View Controller 中并将其分配给一个 ivar,如下所示:
self.loadingview=[[[NSBundle mainBundle] loadNibNamed:@"loading"owner:self options:nil] objectAtIndex:0];
是否可以为 Nib 上的任何东西创建 IBOutlets,比如事件指示器? File's Owner 会是 viewcontroller,即使 IB 不知道这一点,因为它是代码中的对象吗?
按照我的方式加载 Nib 是可以接受的做法吗?
也许更可接受的做法是同时创建一个 .h/.m,并将其用作 XIB 的类,在这种情况下,File's Owner 是新的自定义类;但是,当从自定义类创建 ivar 时,我仍然需要在我的 Controller 中使用上述方法,对吗?或者有没有更好的方法来完成这一切,而不使用 Controller 的 xib?
更新:根据一些答案,我做了以下操作。我摆脱了上面的 NSBundle
方法,而是这样做:
@property (nonatomic, retain) IBOutlet UIView*loadingview;
在该 View 的 nib 文件中,我单击文件所有者并将 自定义类
更改为我的 View Controller 。然后我从 File's Owner 按住 control 并拖动到 View,它链接起来很好。
此时我假设我的 Controller 中有一个 ivar,self.loadingview
,它包含 nib 中的信息。然而事实并非如此。我删除了 NSBundle 方法,假设 Controller 现在将直接通过 IB socket 加载 Nib ,但 Nib 中的 View 没有显示,我无法在 Controller 中控制它。
我在删除 NSBundle 方法时也删除了它:
[self.view addSubview:self.loadingview];
我不清楚此时 View 实际显示的方式;如果是,它出现在 View 层次结构中的什么位置?也许这是其他观点的背后。我也试过这个:
[self.view bringSubviewToFront:self.loadingview];
但 View 不存在。为了找到它,我做了:
//[self.view bringSubviewToFront:self.loadingview];
NSLog(@"index: %i",[[self.view subviews]indexOfObject:self.loadingview]);
有和没有评论部分。我明白了:
索引:2147483647
最佳答案
仅仅因为您创建了一个 nib 并且在该 nib 内部连接了 File's Owner 上的 socket ,不会自动从您的 View Controller 加载该 nib。
您可以为此使用 UINib
类:
UINib* nib = [UINib nibWithNibName:@"loading" bundle:[NSBundle mainBundle]];
[nib instantiateWithOwner:self options:nil];
一旦你执行了 instantiateWithOwner:self
,nib 将被加载并且 self
将被用作文件的所有者,nib 中的 View 将连接到你的loadingView
属性。
你仍然需要调用[self.view addSubview:self.loadingView]
将其添加到屏幕。
关于objective-c - "File' s 自定义 XIB 的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191540/
假设我有一个简单的模型: class Contact(models.Model): owner = models.ForeignKey(User, editable=False) fi
我在docker容器中的轨道上运行ruby。如果生成类似docker-compose run rails rails g controller posts index show的文件,则文件所有者为r
这个问题在这里已经有了答案: Get Component's Parent Form (10 个答案) 关闭 3 年前。 如何从嵌入到表单中的自定义 Winforms 组件获取父/所有者控件? 我有
我这里有密码 @interface FFRightSidebarController () @property (nonatomic, strong) FFActivitiesController *
假设您有这些表:RestaurantChains、Restaurants、MenuItems - 它们之间存在明显的关系。现在,您有表 Comments 和 Ratings,它们存储客户对链式店、餐馆
我有以下 View 层次结构, ... ... .... 单个订单的更新通过推送器进行。 我是 React 新手,想知道以下哪一个是更
所以我有一个位于另一个用户控件内部的用户控件。我们称它们为 ParentUC 和 ChildUC。我需要从 ChildUC 获取 ParentUC。 我知道获取窗口所有者的方法是Window.GetW
我们创建了 Telegram Bot ,它有许多困难的操作。机器人是由一位开发人员使用他的电话号码创建的。是否可以更改机器人的所有者或添加其他用户作为机器人的管理员? 最佳答案 最近出现了将机器人转给
默认情况下,对象(表、存储过程等)是使用 dbo 所有者/架构设置的(我认为 ms sql 2000 称其为所有者,而 ms sql 2005 称其为架构) 所有者/架构实际上是数据库中的角色或用户。
在 Mortar 中,如果 ActionBar 根据显示的屏幕发生变化,我很好奇人们如何处理它。例如,假设您想要在显示特定屏幕时更改 ActionBar 标题或操作。 注入(inject) Activ
我正在使用 Stripe.js 和 Stripe Elements 开发购物车结帐页面,而不是使用 Stripe 的结帐小部件。 在结帐页面上,使用了所有 4 个可用元素(卡片、邮政编码、expire
我尝试将本地仓库推送到 github 并收到这样的消息: The remote end hung up unexpectedly. ERROR: Permission to [repo_name] d
我是 WHM、cPanel 和 CentOS 的新手。 我安装 WHM 然后为域创建一个帐户 app.example.com和用户 peter我将域名指向正确的 IP 地址,但是当我运行我的网站 ap
我已经在 GitHub 上提交了一个项目的问题,该项目不是我的,我也不是贡献者,但我找不到标记我的问题的方法。有没有办法让我给它贴上标签,或者这只适用于贡献者? 最佳答案 它仅适用于贡献者。 这样,您
我到处都找过了,但一直找不到我要找的东西。我知道我需要什么,但无法将 2 和 2 放在一起。 我需要允许用户创建群组并允许其他用户加入群组。 任何用户都可以创建群组。 任何用户都可以发送加入另一个群组
我到处都找过了,但一直找不到我要找的东西。我知道我需要什么,但无法将 2 和 2 放在一起。 我需要允许用户创建群组并允许其他用户加入群组。 任何用户都可以创建群组。 任何用户都可以发送加入另一个群组
这是我的代码: class SpecialMeanings{ String prop1 = "prop1" def closure = { String prop1 = "inner_
我一直在使用 java OWNER 进行基于属性的配置。 我创建了一个静态方法 public static final ApplicationConfiguration config = Config
我正在运行 OpenSSH sftp-server(Linux、Raspbian),FileZilla 用作客户端。我遇到的问题是用户可以删除服务器上的任何文件,而不管文件掩码或所有者/组: 登录的用
这是一个简单的问题,我无法通过谷歌搜索和查看 github documents 找到答案。 . 如果有人对 github 中已关闭的问题发表新评论,是否会通知 Repo 所有者? 最佳答案 如果向已关
我是一名优秀的程序员,十分优秀!