2013-07-22 16 views
6

UIToolbar'lı bir UIViewController (altta) var ve UINavigationBar ile UINavigationBar eklemek istiyorum. Ancak UINavigationController görüntülenmiyor.UIViewController içinde UINavigationController ekleyin

MyViewController.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    int toolBarHeight = 44; 
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, [self.view bounds].size.height-toolBarHeight, [self.view bounds].size.width, toolBarHeight)]; 

    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil]; 
    toolBar.items = @[button]; 

    [self.view addSubview:toolBar]; 

    MyNavigationController *myNav = [[MyNavigationController alloc] init]; 

    [self addChildViewController:myNav]; 
} 
+3

viewController işlevini navigasyonController içine eklemeniz gerekir. '[[MyNavigationController alloc] initWithRootViewController: viewController];' – HelmiB

cevap

14

çocuk görünümü denetleyicisi gibi bir görünüm denetleyicisi ekleme yeterli değildir. Gezinme denetleyicisinin görünümünü, kapsayıcı denetleyicinin görünümünün alt görünümü olarak eklemeniz gerekir. Daha fazla bilgi için bkz. the View Controller Programming Guide.

+0

Aynı şeyi yapıyorum, ancak Nav kontrolörünün yüksekliği ve genişliği ayarladığım çerçeveye göre değil. Köken noktası doğru olsa da. Yardım edebilir misin? – Sam

+0

Genellikle bu, Otomatik Düzenleme ile ilgilidir, görünüm denetleyicisi yuvalamasıyla ilgili değildir. Kodda kısıtlamalar eklemeniz ve 'translatesAutoresizingMaskIntoConstraints 'öğesinin HAYIR olarak ayarlandığından emin olmanız gerekebilir. Yayları ve destekleri kullanıyorsanız, görünümü ana görünüme eklemeden önce eklediğinizden emin olun. – architectpianist

+1

Başlangıçta bir "UINavigationController" programlı olarak oluşturup ekliyordum. IB'nin yardımıyla bir Container görünümü oluşturarak ve UINavigationController'ımla bağlantı kurarak sorunu çözdüm. Hiçbir kod eklenmedi, her şey IB üzerinden yapıldı ve mükemmel çalışıyor. – Sam