添加uiviewcontroller谁是uilabel没有改变

时间:2011-10-22 16:44:15

标签: ios uiviewcontroller uilabel

我正在添加一个UIViewController,它只有一个UILabel到主UIView。我这样创建它:

WEPopoverLabel *contentViewController = [[WEPopoverLabel alloc] init];
[contentViewController setContents:@"aaa"];

(孔码.m):

if (!self.popoverController) {

        WEPopoverLabel *contentViewController = [[WEPopoverLabel alloc] init];
        [contentViewController setContents:@"aaa"];
        contentViewController.lContent.text=@"aaarrr";

        self.popoverController = [[[popoverClass alloc] initWithContentViewController:contentViewController] autorelease];
        self.popoverController.delegate = self;
        self.popoverController.popoverContentSize = CGSizeMake(50.0f, 20.0f);
        self.popoverController.passthroughViews = [NSArray arrayWithObject:sender];
        CGRect rectForPopover = [self.view convertRect:sender.bounds fromView:sender];

        [self.popoverController presentPopoverFromRect:rectForPopover inView:self.view permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown) animated:YES];
        [contentViewController release];
    }

嗯,正在创建WEPopoverLabel,因为它出现在我的窗口中并且还执行setContents,因为我有一个在我的控制台中打印的NSLog。

但是,标签没有改变。这是WEPopoverLabel的内容:

@interface WEPopoverLabel : UIViewController{
    IBOutlet UILabel * lContent;
}
-(void)setContents:(NSString *) theContent;

和.m

@implementation WEPopoverLabel

-(void)setContents:(NSString *) theContent{
    lContent.text = theContent;
    NSLog(@"texto fijado");
}

在.xib中,我已将lContent连接到File的所有者。

为什么没有更新UILabel的文本?

2 个答案:

答案 0 :(得分:1)

在UIViewController中,您是否已将xib中的主视图连接到文件所有者以及连接标签?

您还在创建后将WEPopoverLabel添加到视图中:

[currentView addSubview:contentViewControler]

我会给标签一个背景颜色,这样你就能知道它是否真的被显示出来了。

答案 1 :(得分:0)

-(void)setContents:(NSString *) theContent{
lContent = [[UILabel alloc] init]    
lContent.text = theContent;
   NSLog(@"texto fijado");
}

那是正确的。检查一下: http://forums.macrumors.com/showthread.php?t=1002736

或者

@property (nonatomic, retain) IBOutlet UILabel *lContent;

并在此方法中:

self.lContent.text = theContent