加载文本时UITextView.text滞后

时间:2012-09-14 08:51:30

标签: iphone objective-c ios xcode uiviewcontroller

我想用UITextView显示文本,UITextView是UITabBarView的一部分,并在以下类中执行:

.h - 文件:

#import <UIKit/UIKit.h>

@interface DescriptionViewController : UIViewController{

IBOutlet UITextView *descriptionText;

}
@end

.m - 文件:

#import "DescriptionViewController.h"
#import "Globals.h"

@interface DescriptionViewController ()


@end

@implementation DescriptionViewController



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

- (void)viewDidLoad
{
    [super viewDidLoad];

}

-(void) viewWillAppear:(BOOL)animated{

    Globals* myGlobals = [Globals sharedGlobals];

    descriptionText.text = [myGlobals.currentLine objectAtIndex:5];

}


@end

当第一次显示TextView时,当我切换到另一个选项卡并切换回“TextView - Tab”时,它会正确显示。但我显然希望它第一次正确显示..

我已经尝试将相关代码移动到-viewDidLoad函数,但没有任何改变。另外,我尝试了-setNeedsDisplay函数没有成功(也许我用错了? - [descriptionText setNeedsDisplay]。

我感谢任何帮助,并会根据要求发布更多代码。

2 个答案:

答案 0 :(得分:1)

请在您的类的ViewWillAppear方法上设置断点,然后在第一时间检查您从NSLog获得的内容(“%@”,[myGlobals.currentLine objectAtIndex:5]);

你错过了[super viewWillAppear:animated];

答案 1 :(得分:0)

试试这个,

- (void)viewDidLoad
{
    [super viewDidLoad];
    Globals* myGlobals = [Globals sharedGlobals];

    descriptionText.text = [myGlobals.currentLine objectAtIndex:5];
}

-(void) viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    Globals* myGlobals = [Globals sharedGlobals];

    descriptionText.text = [myGlobals.currentLine objectAtIndex:5];

}