我正在尝试以编程方式为应用程序的主窗口上的ModalView演示文稿创建UIViewController,并且在此顶部的UIViewController中,我有导航栏,带有完成按钮以关闭视图,并在导航栏下方,它具有UITextView。
所以我的问题是我要在导航栏下面创建的UITextview将出现在ViewdidLoad方法中,或者我正确地显示单独的方法来设置textview。
在Infoviewcontroller.h文件中有以下代码:
#import <UIKit/UIKit.h>
@interface Infoviewcontroller : UIViewController <UITextViewDelegate>{
UITextView *textView;
}
@property (nonatomic, retain) UITextView *textView;
@property (nonatomic, assign) UINavigationBar *navBar;
@end
然后在infoviewcontroller.m文件中输入以下代码:
#import "Infoviewcontroller.h"
@implementation Infoviewcontroller
@synthesize textView;
@synthesize navBar;
-(void)dealloc{
[textView release];
[navBar release];
[super dealloc];
}
-(void)setupTextView {
self.textView = [[[UITextView alloc] initWithFrame:self.view.frame] autorelease];
self.textView.textColor = [UIColor redColor];
self.textView.font = [UIFont fontWithName:@"System Bold" size:13];
self.textView.delegate = self;
self.textView.backgroundColor = [UIColor whiteColor];
self.textView.textAlignment = UITextAlignmentCenter;
self.textView.text = @"This is UITextView\nThis is UITextView\nThis is UITextView\nThis is UITextView";
[self.view addSubview: self.textView];
}
- (void)viewDidLoad {
[super viewDidLoad];
navBar = [[UINavigationBar alloc] init];
UINavigationItem *navItem = [[[UINavigationItem alloc] initWithTitle:@"ModalViewControllerTest"] autorelease];
UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView:)] autorelease];
navItem.rightBarButtonItem = done;
navBar.items = [NSArray arrayWithObject:navItem];
[self.view addSubview:navBar];
}
答案 0 :(得分:0)
关于以编程方式创建UINavigationBar,我发现以下博客文章有用http://cps.liridesce.com/?p=100。示例覆盖 loadView 而不是 viewDidLoad 方法,但我认为在您的情况下使用 viewDidLoad 应该具有相同的效果。
我还要添加 viewDidUnload ,我将设置为 nil navBar和textView属性。
我不太确定为什么你需要单独的 setupTextView 方法,除非你从UIViewController的不同位置调用它。我只是将所有内容保存在 viewDidUnload 。
中