Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS自定义UIView代码中的访问属性_Ios_Objective C_Uiview - Fatal编程技术网

iOS自定义UIView代码中的访问属性

iOS自定义UIView代码中的访问属性,ios,objective-c,uiview,Ios,Objective C,Uiview,因此,我创建了一个自定义UIView子类,并将其分配给主情节提要中的UIView。当视图加载时,所有内容都会正确显示 我遇到的问题是,我需要能够访问所述自定义UIView的属性,因为该视图是数据驱动的 JSON_table.h: #import <UIKit/UIKit.h> @interface JSON_table : UIView @property (strong, nonatomic) IBOutlet UIView *view; @property (weak, nona

因此,我创建了一个自定义UIView子类,并将其分配给主情节提要中的UIView。当视图加载时,所有内容都会正确显示

我遇到的问题是,我需要能够访问所述自定义UIView的属性,因为该视图是数据驱动的

JSON_table.h:

#import <UIKit/UIKit.h>
@interface JSON_table : UIView
@property (strong, nonatomic) IBOutlet UIView *view;
@property (weak, nonatomic) IBOutlet UISearchBar *searchbar;
@property (weak, nonatomic) IBOutlet UITableView *table_view;

@property (weak, nonatomic) NSString *data_header;
@property (weak, nonatomic) NSString *data_list;
@end
(我知道我缺少tableview的代理,稍后将添加这些代理)

我遇到的问题是,当我右键单击故事板上的UIView时,我得到:

问题是当我尝试将“视图”连接到头文件时” h“它不允许我创建IBOutlet,因此我无法在代码中引用我的视图及其属性

这就是我努力实现的目标: “表”的类型为UIView

想法:

这与我的故事板中第二个视图的UIView有什么关系吗?我注意到,我似乎没有任何问题附加到第一页上的任何内容,但第二页我不能。

请确保在助手编辑器中打开的类与自定义类所包含的类相同。

只能将视图的输出连接到其类对象。您正在尝试将JSON_表对象的出口连接到UIViewController对象

如果需要访问UIViewController对象中的这些属性。你需要导入

JSON_table.h
在视图控制器中。并创建和实例化它的一个对象

JSON_table * customView = [[JSON_table alloc]init];
现在,您可以通过以下方式访问它的所有属性:

customView.searchbar、customView.view

由阴影124添加:

感谢所有试图帮助我解决问题的人。由于对iOS的编码相当陌生,我没有意识到我必须为我的故事板中的每个UIViewController分配一个自定义类(我认为如果我没有指定,它们将从基继承)。只需创建UIViewController的一个新子类并在Identity inspector下分配它,就可以解决我的问题,现在我可以正确分配插座了


我会接受这个答案,因为这是我在解决故事板问题上的子类后遇到的问题之一。

根据你的问题,我认为您使用
UIViewController
@ChrisLoonam会更有意义。我需要自定义控件能够自我包含,并且一次屏幕上可能会有多个控件。UIViewController不会将我限制为一个吗?控制从文件所有者框拖动到IB中的视图对象,并将其连接到view@ChaseI ctr在xib编辑器页面上从“文件所有者”拖动到“视图”。它给了我连接插座“视图”的选项,但它有一个白点表示它已经连接。但我再次这样做是为了确保。但我的故事板上仍然没有一个出口。请参见上面的“编辑”。@theshadow124因此,当您控制从IB中的视图对象拖动到ViewController时,它不允许您执行此操作?我在上面的代码所示的自定义视图中链接了这些控件和视图。一旦我将自定义视图放在情节提要上,我将尝试连接自定义视图的插座,以便主代码可以将数据传递到视图的属性是的,我理解,我的意思是,确保您尝试将自定义视图连接到的类与助理查看器中情节提要中包含自定义视图的类相同,如果我为我的故事板将其设置为自动,它将打开一个文件“UIViewController.h”,这是UIViewController的标准苹果头文件。我在“ViewController.h”中有我的所有其他插座,与接收viewDidLoad eventokey的文件相同,因此,我尝试了您的代码,您是对的,它不会将自定义视图连接为插座,因此请执行以下操作,它将起作用:同时按ctrl键和鼠标右键,将鼠标拖动到你的.h文件,它将连接它,如果它工作,请在按住ctr的同时右键单击。在UIView(Json_表)上,并尝试拖动到左侧的ViewController.h和右侧的助理编辑器,但它仍然不允许我连接它
JSON_table * customView = [[JSON_table alloc]init];