2012-10-15 81 views
0

目前,我使用的,因爲顯然在我的應用程序重複下面的代碼,你不應該繼承的UINavigationController(糾正我,如果我錯了):將NavigationBar樣式應用於MonoTouch中的所有導航欄?

var galleryNavigation = new UINavigationController(galleryDialog); 

galleryNavigation.NavigationBar.TintColor = UIColor.FromRGB (33, 114, 131); 
galleryNavigation.NavigationBar.Alpha = 0.7f; 
galleryNavigation.NavigationBar.Translucent = true; 

我要定義這些樣式(TintColor,阿爾法等)一次並重新使用它們。我怎樣才能做到這一點?

回答

1

如果你只是想設置一些屬性比你可以做一個方法在你的AppDelegate或者如果你想比一個很好的選擇,更多的自定義一些共享類調用它從每個視圖控制器像

-(void)setNavigation:(UIViewController*)vc 
{ 
    //set properties here 

} 

不然會企圖使子類UINavigationBar的獲取每個視圖控制器

// Get our custom nav bar 
    MyNavigationBar* customNavigationBar = (MyNavigationBar*)self.navigationController.navigationBar;  
    // Set the nav bar's properties as you want like i have set its background image as 
    [customNavigationBar setBackgroundWith:[UIImage imageNamed:ImgNavBarBackground]]; 
+0

我想我尋找類似的UINavigationBar的的子類繼承的東西,但像我原來的問題的狀態,我尋找MonoTouch解決方案。謝謝。 –

+1

對不起,我沒有看到MonoTouch,也沒有多少意識到它,但正確的方式將繼承UINavigationBar。 – Animesh