使用导航栏以及完成按钮和UITextView for ModalView Presentation以编程方式创建UIViewController

时间:2012-01-07 22:04:21

标签: ios iphone

我正在尝试以编程方式为应用程序的主窗口上的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];
}

1 个答案:

答案 0 :(得分:0)

关于以编程方式创建UINavigationBar,我发现以下博客文章有用http://cps.liridesce.com/?p=100。示例覆盖 loadView 而不是 viewDidLoad 方法,但我认为在您的情况下使用 viewDidLoad 应该具有相同的效果。

我还要添加 viewDidUnload ,我将设置为 nil navBar和textView属性。

我不太确定为什么你需要单独的 setupTextView 方法,除非你从UIViewController的不同位置调用它。我只是将所有内容保存在 viewDidUnload