ViewController загружен, но вид не отображается - PullRequest
3 голосов
/ 09 сентября 2011

У меня есть представление, для которого создается экземпляр контроллера (NSLog так говорит), но представление не отображается. Если я загружаю его как модальный вид, он появляется, но не при его выделении.

У меня есть такая структура (MenuView - это вид, который не отображается):

// ViewController.h

#import "MenuViewController.h"
@class MenuViewController;
@interface ViewController : UIViewController<ASIHTTPRequestDelegate>{
    ...
    IBOutlet MenuViewController         *menuView;
}
...
@property(nonatomic, retain) MenuViewController *menuView;
@end

// ViewController.m

#import "MenuViewController.h"

@implementation ViewController

@synthesize menuView;

- (void)loadMenu{
  // THIS WORKS
  // [self presentModalViewController:menuView animated:YES];

  // THIS DOESN'T (VIEWCONTROLLER IS INSTANTIATED BUT VIEW DOESN'T APPEAR

  menuView = [[[MenuViewController alloc] initWithNibName:@"MenuView" bundle:Nil] autorelease];
  [self.navigationController pushViewController:menuView animated:YES];
}

1 Ответ

2 голосов
/ 09 сентября 2011

Некоторые идеи:

Попробуйте использовать self.menuView при назначении:

self.menuView = [[MenuViewController alloc] initWithNibName:@"MenuView" bundle:Nil];

Также, вероятно, не следует автоматически выпускать property. Отпустите его в dealloc и установите nil в viewDidUnload.


Убедитесь, что self (ViewController) имеет navigationController. Был ли ViewController нажат / представлен navigationController?


- (void)loadMenu{ вызывается из MainThread? Проверьте с [NSThread mainThread]


Ознакомьтесь с некоторыми уроками / примерами:

Добавление контроллера навигации вручную

Приложение NavigationController в iPhone

Учебник. Знакомство с UINavigationController, часть 1

Учебник по переключению представлений iPhone


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