0

我想使用 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]。

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

4

2 回答 2

1

请在您的班级的 ViewWillAppear 方法上设置断点,然后在第一次检查您从 NSLog("%@", [myGlobals.currentLine objectAtIndex:5]);

而你缺少 [super viewWillAppear:animated];

于 2012-09-14T09:01:43.967 回答
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];

}
于 2012-09-14T08:59:11.110 回答