我想用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]。
我感谢任何帮助,并会根据要求发布更多代码。
答案 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];
}