Kjuly Я просто делаю presentModalViewController, чтобы показать диалоговое окно, но так как мой UINavigationControler содержит UIViewController (см. Nib-экран), я предполагаю, что этот ViewController отображается, когда отображается модальное значение.
Не всегда Беси.Добавление его в иерархию UINavigationController не добавляется как rootViewController.Это должно быть сделано в коде, подобном следующему:
UIViewController *rootViewController = [[[ExamplesViewController alloc] init] autorelease];
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
Кроме того, убедитесь, что вы представляете NavigationController, а не ViewController модально.
Чтобы решить проблему с заголовком NavigationBar, попробуйте установитьself.title
свойство в методе
-(void)viewDidload
и посмотрите, работает ли это.Если нет, попробуйте self.//instance of UINavigationController//.navigationBar.title = @"string"
.
Что касается других кнопок, которые не отображаются, я предполагаю, что если установка корневого контроллера в коде не помогает, то вы только ссылались на них в .h, вместо того, чтобы создавать их экземпляры.Так что либо позвоните примерно так в .h:
//.h
@implementation ExampleViewController: UIViewController <UITextFieldDelegate> {
IBOutlet UIBarButtonItem * CancelButton;
IBOutlet UITextField * usernameField;
IBOutlet UITextField * passwordField;
IBOutlet UIButton * loginButton;
}
@property (nonatomic, retain) IBOutlet UIBarButtonItem * CancelButton;
@property (nonatomic, retain) IBOutlet UITextField * usernameField;
@property (nonatomic, retain) IBOutlet UITextField * passwordField;
@property (nonatomic, retain) IBOutlet UIButton * loginButton;
Затем подключите розетки в XIB, или создайте экземпляры кнопок в .m с помощью:
//.m
-(void)viewDidLoad {
//do stuff
CancelButton = [[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleDone target:self action:@selector(dismissSelf)]autorelease];
//do more stuff
}