我在协议(protocol)中声明了这个IBOutlet:@protocolSomeProtocol@property(nonatomic,strong)IBOutletUIView*view;@end然后有一个继承自这个协议(protocol)的类://.h@interfaceSomeClass:NSObject@end//.m@implementationTSNFactoryViews@synthesizeview=_view;@ned在xib文件中,我将SomeClass设置为类所有者,这样我就可以看到view导出并将其连接到适当的xib实例。在XCode4中,我对这个概念没有异
在我的应用程序中,我有一个UIViewController,我希望向其添加UITabBar。所以我通过用户界面添加了它(到UIViewController.xib文件中)并在UIViewController.h+m文件中创建了IUTabBar和UITabBarItems的实例。在xib文件中,我能够将代码项连接到xib上的代码项(通过从文件所有者拖动到相关项并选择相关的IBOutlet),但我似乎无法将按钮连接回写在h+m个文件。在添加UITabBar之前,我使用了UIToolBar,在进行这些连接时没有遇到任何问题。谁能解释我做错了什么? 最佳答案
我正在使用xcode4.3我有一个大问题:我开始使用ipad的Storyboard创建应用程序。起初我在界面生成器中添加了我的对象,然后我将蓝线拖到.h文件,xcode建立了连接并创建了一个:@property(strong,nonatomic)IBOutletUIButton*button1;用实心圆圈。但是过了几天,我尝试添加一个UIScrollView。我将对象添加到Storyboard中,并拖动了线,但它不会连接并创建属性。所以我首先制作了代码,并尝试链接,但同样的问题。所以我删除了ScrollView并再次插入了一个按钮和标签。但是现在任何对象都不会以任何方式链接到代码!!!
Storyboard中有两个UIViewController(A和B)。AViewController有一个属性@property(nonatomic,retain)IBOutletUIViewController*viewController;我想通过Storyboard链接到B。socket显示在Storyboard菜单中的IBOutlets部分下,但我无法链接。为什么我要这样做似乎很奇怪,但我需要它。有人知道怎么做吗? 最佳答案 IBOutlets是单个ViewController中的连接。在ViewController中创建
我需要将xib文件从一个项目复制到另一个项目。这可能是基本的事情,但我是xib文件使用的新手。我从项目1中手动复制了xxx.h、xxx.m和xxx.xib,并保存在一个文件夹中,并将它们包含在另一个项目中,如“右键单击项目2文件夹->将文件添加到项目-2"选项。(1)我在复制后丢失了一些IBOutlet连接(2)Xib不允许有新的IBOutlet变量。然后我从原始位置(Project-1文件夹)复制文件,然后(3)如果我创建新的IBOutlet连接,如果我访问引用变量,我将得到nil值。有人可以帮助我了解如何移动/复制xib文件及其来源的基础知识。 最佳答案
它们之间的技术区别是什么,苹果推荐的方法是什么?//1@interfaceCocoaQuizViewController:UIViewController{IBOutletUILabel*myLabel;}@end//2@interfaceCocoaQuizViewController:UIViewController{IBOutletUILabel*myLabel;}@property(nonatomic,retain)IBOutletUILabel*myLabel;@end//3@interfaceCocoaQuizViewController:UIViewController{U
在IB中创建UI时,我经常使用具有操作的按钮,但ViewController没有理由访问此按钮。按钮文本永远不会改变,按钮图像永远不会改变,它永远不会移动,等等......因此,我没有给它一个IBOutlet属性,也没有将它连接到VC中的任何东西(当然除了Action)。我读过关于SO的类似问题,那里的论点涉及内存管理问题。这个问题来自2011年初,在ARC之前。鉴于我所有的IBOutlet属性都很弱,内存由它们的superView处理,而不是由ViewController处理。因此,该问题中提到的问题现在没有实际意义。现在有理由将它们连接起来吗?他们应该总是有联系吗?如果是,为什么?
我有一个Storyboard,其中有一个View使用socket连接到他的Controller。在同一个Controller中,我想注入(inject)一个需要访问该View的对象。我不想将该View手动传递给对象,而是希望自动注入(inject)它,但我不知道如何以及是否可以使用当前代码结构实现它。classLoadingViewController:UIViewController{@IBOutletweakvarloadingView:UIActivityIndicatorView!private(set)varloadingViewModel:LoadingViewModel!
所以,我正在学习这本Xcode教程:Iphone和Ipad游戏开发傻瓜书。这是一本好书,但到处都有一些瑕疵。大多数时候我都能找到解决这些缺陷的方法,但现在我偶然发现了一些我无法修复的东西。甚至他们的网站或联系人也不知道答案。我正在尝试用汽车和其他东西制作游戏。但问题出在主菜单上。我已经用自定义按钮模式制作了按钮。并使用IbActions使它们工作(实际上,“新游戏”是现在唯一可用的按钮,因为它的功能已经编写好了)。但现在我必须让IBOutlets给他们一个动画。这本书告诉我使用QuartzCore.framework。现在的问题是,当我尝试构建它时出现此错误:在界面中找不到属性“new
我是iOS编程的新手,我正在使用XCode学习Storyboard。我的问题是我已经使用IB添加了我想要的View,但我不想让它们在IB中使用Ctrl+Drag连接到我的ViewController,而是以编程方式执行相同操作。我看到帖子建议在代码中创建View的实例并使用addSubView()添加它们(通过设置框架)。但我不想在代码中硬编码我的框架和尺寸,为此我更喜欢IB。我只需要在需要时引用它们。在android中,我们可以通过布局XML上的getIdByName()来执行相同的操作。我正在寻找类似的东西。谢谢 最佳答案 在I