Переменная члена UITextView всегда равна нулю в моем UIViewController - PullRequest
0 голосов
/ 02 июля 2011

В моем перо у меня есть UITextView компонент.

В моем UIViewController у меня есть UITextView поле участника, и я использовал IB, чтобы убедиться, что оба подключены (по крайней мере, я думаю, что я сделал это, перетащив из «Владелец файлов» и сбросив его на UITextView в IB и выбор моей переменной-члена).

Теперь, когда я обновляю текст с помощью setText:, UITextView все еще остается пустым.

Когда я врываюсь в мой код, переменная-член (называемая textView) имеет вид nil.

Так что, полагаю, я не правильно использовал IB. Как я могу убедиться, что эта переменная связана с графическим элементом UITextView?

Вот код

// My interface looks like

#import <UIKit/UIKit.h>

@interface DetailsController : UIViewController 
{
    UITextView *textView;
}

@property (nonatomic, retain) IBOutlet UITextView *textView; 

@end;


// and the implementation

#import "DetailsController.h"

@implementation DetailsController

@synthesize textView;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) 
    {
        // Custom initialization
    }
    return self;
}

- (void)dealloc
{
    [super dealloc];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

// used pressed the "Done" button
- (IBAction)done
{
    [self dismissModalViewControllerAnimated:YES];
}

- (void)setDetails: (NSString *)detail withQuote:(NSString *)quote
{
    NSLog(@"%@", textView);
    [textView setText:detail];
}

@end

Ответы [ 2 ]

0 голосов
/ 03 июля 2011

Я не вижу agere, вы вызываете setText, но я думаю, что вы пытаетесь сделать это в инициализаторе.Код GUI не должен выполняться перед viewDidLoad в случае использования XIB или loadView, если вы создаете GUI программно или другие методы viewWill / viewDid ....

Причина в том, что представления не загружаютсяпрежде чем они действительно нужны, это называется отложенной загрузкой.Вы должны Google, что для получения дополнительной информации.

0 голосов
/ 03 июля 2011

сохраните файл пера после подключения розетки, соберите проект и запустите, он должен работать, если он подключен

...