簡體   English   中英

代碼中的iOS自定義UIView訪問屬性

[英]iOS custom UIView access properties in code

因此,我創建了一個自定義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

JSON_table.m:

#import "JSON_table.h"
@implementation JSON_table
- (id) initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];
    if (self) {
        [[NSBundle mainBundle] loadNibNamed:@"JSON_table" owner:self options:nil];
        [self addSubview:self.view];
    }
    return self;
}
@end

(我知道我缺少表視圖的代表,以后再添加這些代表)

我遇到的問題是當我在情節提要上右鍵單擊UIView時得到: 在此處輸入圖片說明

問題是,當我嘗試將“視圖”連接到頭文件“ ViewController.h”時,它不允許我創建IBOutlet,因此無法在代碼中引用我的視圖及其屬性。

這是我要完成的工作: 在此處輸入圖片說明 “表格”的類型為UIView

理念:

這與UIView位於情節提要中的第二個視圖有什么關系嗎? 我注意到第一頁上的內容似乎沒有任何問題,但第二頁上的內容卻沒有問題。 在此處輸入圖片說明

您只能將視圖的出口連接到其類對象。 您正在嘗試將JSON_table對象的插座連接到UIViewController對象。

如果需要訪問UIViewController對象中的那些屬性。 您需要導入

JSON_table.h

在您的視圖控制器中。 並創建並實例化它的一個對象。

JSON_table * customView = [[JSON_table alloc]init];

現在,您可以按以下方式訪問它的所有屬性:

customView.searchbar, customView.view等。

由theshadow124添加:

感謝所有試圖幫助我解決問題的人。 由於對於iOS編程來說是相當陌生的,所以我沒有意識到我必須為故事板中的每個UIViewController分配一個自定義類(我認為如果不指定它們,它們將繼承自基類)。 只需創建UIViewController的新子類並在身份檢查器下進行分配即可解決我的問題,現在我可以正確分配出口了。

我將接受此答案,因為這是在解決情節提要上的子類后遇到的問題之一。

請確保您在助理編輯器中打開的類與您的自定義類所包含的類相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM