2014-01-16 22 views
0

我有一個編程生成的UINavigationController適用於我的ViewControllers中的每一個,但此UINavigationController爲空。我需要添加一些文字,圖像(如果可能)和兩個按鈕。在Xcode5中以編程方式修改UINavigation控制器

我設法做了類似的一個非常基本的應用程序,只有一個ViewController和UINavigationController創建在正常的方式,但不知道該怎麼做以編程方式生成。

我在XCode5/iOS7中使用故事板。

這裏是產生UINavigationController並啓動第一ViewController代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil]; 
    MainViewController* mainVC = [mainStoryboard instantiateInitialViewController]; 
    UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:mainVC]; 

    [self.window setRootViewController:navVC]; 

    [_window makeKeyAndVisible]; 

    return YES; 
} 

我已經試過的事情,我認爲將是顯而易見的,如:

navVC.navigationBar.backgroundColor = [UIColor redColor]; 

要改變顏色或:

[navVC setTitle:@"Test title"]; 

但沒有什麼變化,唯一的w唉,我可以拿到冠軍來的變化是改變mainVC

[mainVC setTitle:@"Test title"]; 

稱號的MainViewController.m文件本身並沒有什麼改變的稱號。

那麼如何修改UINavigationController(navVC)?

感謝,

+0

如果您使用的是故事板,爲什麼不將導航控制器放在故事板上,而不是試圖將故事板的內容嵌套到程序創建的導航控制器中?可能有一個很好的理由,但我無法想象...... – nhgrif

+0

我需要NavigationController來簡單地在每個VC的頂部有一個靜態標題和按鈕e.i.在每個頁面上完全相同的佈局,而不是在VC之間的實際導航,如果這是有道理的。我能想到的唯一方法就是以編程方式生成NC並將相同的「實例」應用於每個VC。看來盧卡現在已經給出了這個答案。 – Ryan

回答

2

您應該能夠將圖像設置以這種方式您的導航欄:

UINavigationBar *navBar = navVC.navigationBar; 
UIImage *image = [UIImage imageNamed:@"YourNavBarImg.png"]; 
[navBar setBackgroundImage:image]; 

,這改變導航欄色調顏色:

[navVC.navigationBar setTranslucent:NO]; 
[navVC.navigationBar setBarTintColor:[UIColor redColor]]; 

關於按鈕(UIBarButtonItem)到導航欄中:

// where "self" is your current viewcontroller 
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:button1,button2, nil]; 
+0

完美,這正是我所需要的,我清楚地沒有針對導航條。謝謝。 – Ryan

+0

很高興有幫助 –