добавление контроллера uiview, который не меняется - PullRequest
0 голосов
/ 22 октября 2011

Я добавляю 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 к владельцу файла.

Почемуне обновляется текст UILabel?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

В UIViewController, вы подключили основной вид в XIB к владельцу файла, а также подключили метку?

Также вы добавили WEPopoverLabel в представление после его создания:

[currentView addSubview:contentViewControler]

Я бы дал метке цвет фона, чтобы вы могли определить, отображается ли он на самом деле.

0 голосов
/ 22 октября 2011
-(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
...