Azerue
Azerue

Reputation: 368

nib objects aren't changing at runtime

Hello i have a nib file which contains 3 UIButtons , i need to change the attributes of button at runtime after loading from nib but i don't know what am i doing wrong. I have also NSlog after changing the booleans but i always get '0' in output. Any help thx

-(void)SettingBtnPressed:(id)sender
{

    UIButton *btn =(UIButton*)sender;
    UITableViewCell *btncell =(UITableViewCell *)[btn superview];

    if ([[recentActivities objectAtIndex:btn.tag] isKindOfClass:[MeetingSummary class]]) {

        [MainManager getSharedInstance].Summary = [recentActivities objectAtIndex:btn.tag];
        MeetingSummary *ms=[recentActivities objectAtIndex:btn.tag];
        Meeting *m=ms.meeting;


        if(![popoverController isPopoverVisible]){
            lastPoint = sender;
            if (![m.endedDate isEqualToString:@"1/1/0001"]) {

                if (settingpop) {
                    [settingpop release];
                }
                settingpop = [[SettingsPopViewController alloc] initWithNibName:@"SettingsPopViewController" bundle:nil];
                settingpop.start.hidden=YES;
                settingpop.start.enabled=NO;
                NSLog(@"%i",settingpop.start.hidden);
                NSLog(@"%i",settingpop.start.enabled);
                settingpop.btnShowDetail.enabled=NO;
                settingpop.btnShowDetail.hidden=YES;
        //        [settingpop.start removeFromSuperview];
        //        [settingpop.btnShowDetail removeFromSuperview];
                settingpop.view.frame=CGRectMake(0, 0, 250, 54);

            }
            else
            {

                settingpop = [[SettingsPopViewController alloc] initWithNibName:@"SettingsPopViewController" bundle:nil];

            }
            settingpop.delegate = self;
            [settingpop setActivityView:self.view];

            popoverController = [[[UIPopoverController alloc] initWithContentViewController:settingpop] retain];

            [popoverController setPopoverContentSize:CGSizeMake(250.0f, 162.0f)];

            [popoverController presentPopoverFromRect:btn.frame inView:btncell
                         permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
        }else{

            [popoverController dismissPopoverAnimated:YES];
        }
    }
}

Upvotes: 0

Views: 180

Answers (2)

Rob
Rob

Reputation: 437392

Are you talking about adjusting the properties of the start and btnShowDetail controls of SettingsPopViewController? You cannot access its controls immediately after the initWithNibName. You have to wait until after the view has been created, i.e., wait until after viewDidLoad is called, because the NIB may well not have been loaded until then.

Upvotes: 1

Giuseppe Mosca
Giuseppe Mosca

Reputation: 1333

Move the row:

settingpop.view.frame=CGRectMake(0, 0, 250, 54);

before the row:

settingpop.start.hidden=YES;

Upvotes: 1

Related Questions