Как сделать UIWebView невидимым в target-c - PullRequest
2 голосов
/ 01 ноября 2011

Мне нужно скрыть загрузку UIWebView UIView и показывать его только при нажатии кнопки UIB ... я пытаюсь это сделать:

В .h я создаю IBOutlet, соответствующий xib.

#import <UIKit/UIKit.h>

@interface SingleViewController : UIViewController{

    UIWebView *gif;
    UIButton *go;
}
@property(nonatomic,retain) IBOutlet UIWebView *gif;
@property(nonatomic,retain) IBOutlet UIButton *go;
@end

in .m я пытаюсь скрыть uiwebview следующим образом:

@implementation SingleViewController
@synthesize sug;
@synthesize gif;
@synthesize avvia;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        gif.hidden=YES;
        UIImage *keys = [UIImage imageNamed:@"chiave.png"];
        [self.go setImage:chiave forState:UIControlStateNormal];               
        [self.go setImage:chiave forState:UIControlStateHighlighted];          
        [self.go setImage:chiave forState:UIControlStateDisabled];             
        [self.go setImage:chiave forState:UIControlStateSelected];
    }
    return self;
}

и я загружаю это представление таким образом:

SingleViewController *single = [[SingleViewController alloc]initWithNibName:@"SingleViewController" bundle:nil];
[self.view addSubview:single.view];

Что идет не так?

Ответы [ 2 ]

3 голосов
/ 01 ноября 2011

Вам нужно подождать, пока не будет вызван viewDidLoad:, чтобы скрыть UIWebView.Это связано с тем, что элементы вашего пера еще не были созданы, а вызовы методов для nil-объекта не будут иметь никакого эффекта.

- (void)viewDidLoad
{
        gif.hidden=YES;
        UIImage *keys = [UIImage imageNamed:@"chiave.png"];
        [self.go setImage:chiave forState:UIControlStateNormal];               
        [self.go setImage:chiave forState:UIControlStateHighlighted];          
        [self.go setImage:chiave forState:UIControlStateDisabled];             
        [self.go setImage:chiave forState:UIControlStateSelected];
}
1 голос
/ 01 ноября 2011

Несколько предложений:

Убедитесь, что initWithNibName: bundle: действительно вызывается, поскольку это может не произойти, если View Controller загружен из файла пера напрямую.

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

...