2013-11-26 98 views
2

我想從我的主UIViewController中傳遞一個變量給UIView。變量未傳遞給UIView

CGRect frame = CGRectMake(0,0,347, 308); 
XBMCPopUpView * xbmcpop = [[XBMCPopUpView alloc]initWithFrame:frame]; 

xbmcpop.DevIP = @"2222"; 

[self.view addSubview:xbmcpop]; 

對象xbmcpop被創建並且其字符串屬性「DevIP」被正確賦值。但是當UIVIEW實際上被查看時,看起來好像被查看的實例與我創建的實例不同,並且變量@「2222」未傳遞給字符串屬性「DevIP」

注意:我的主UIViewController位於與導航控制器故事板

如果你有興趣看「XBMCPopUpView類,那就是:

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 

@class XBMCPopUpView; 


@interface XBMCPopUpView : UIView 
{ 
    NSString * DevIP; 
} 

@property (strong,nonatomic) NSString *DevIP; 

- (id)initWithFrame:(CGRect)frame; 

-(IBAction)sendPlay:(id)sender; 

@end 

回答

0

由於您使用的是故事板,您需要使用您的視圖控制器的awakeFromNib方法這個。

當您添加awakeFromNib方法時,請不要忘記在那裏致電[super awakeFromNib]

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 

    CGRect frame = CGRectMake(0,0,347, 308); 
    XBMCPopUpView * xbmcpop = [[XBMCPopUpView alloc]initWithFrame:frame]; 
    xbmcpop.DevIP = @"2222"; 
    [self.view addSubview:xbmcpop]; 
} 
+0

感謝您的解釋。在UIview或UIviewcontroller中從nib喚醒一個方法?你能否提供一些示例代碼?謝謝 – user2847240

+0

另外,如何將許多方法的變量傳遞給awakefromnib方法。我只是通過@「2222」來簡化我的問題,但實際上這個字符串是從sqllite數據庫中提取的,並且是通過點擊按鈕觸發的 – user2847240

+0

對不起,我剛剛注意到您的視圖xbmcpop不在故事板中。我已經更正了答案並添加了代碼。讓我知道這個是否奏效。 – Macondo2Seattle

0

@interface XBMCPopUpView : UIView 

刪除

{ 
    NSString * DevIP; 
}