Создайте UIViewController программно с помощью панели навигации вместе с кнопкой «Готово» и UITextView для презентации ModalView - PullRequest
0 голосов
/ 08 января 2012

Я пытаюсь создать UIViewController программно для представления ModalView в главном окне приложения, и в этом верхнем 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 голосов
/ 08 января 2012

Что касается создания UINavigationBar программным способом, я нашел следующий пост в блоге полезным http://cps.liridesce.com/?p=100. Пример переопределения loadView вместо viewDidLoad метод, но я думаю, что в вашем случае используется viewDidLoad должен иметь тот же эффект.

Я бы также добавил viewDidUnload , где я бы установил nil navBar и textView.

Я не совсем уверен, зачем вам нужен отдельный setupTextView метод, если только вы не вызываете его из разных мест вашего UIViewController.Я бы просто держал все вместе в viewDidUnload .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...