1

'un ikinci ekranında bulunan Navigasyon Çubuğuna erişilemiyor. Xamarin.iOS kullanarak bir uygulama geliştiriyorum. Main.StoryBoard kullanarak tasarlayamadığım pek çok ekrana sahip olacak, bu yüzden her ViewController'ı ayrı ayrı tasarlamak zorundayım. Şu anda 2 ekranım var: ViewController.cs ve InProgress.cs. ViewController.cs'u Main.StoryBoard'da NavigationController içinde kapattım. Bunun yığınında yeni ViewController iter sectionGrid bir öğeyi tıkladığınızdaNavigasyon

ViewController.cs (viewDidLoad)

public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 

      //change the navigation bar controller 
      this.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB (26f/255f, 56f/255f, 100f/255f); 
      this.NavigationController.NavigationBar.TitleTextAttributes = new UIStringAttributes() 
      { 
       ForegroundColor = UIColor.White 
      }; 
      NavigationController.NavigationBar.BarStyle = UIBarStyle.Black; 

      //change the layout of collectionView Layout 

      //initialize the data 
      sectionCategories = new List<SectionCategory>(); 
      sectionCategories.Add(new SectionCategory("Lajme", "http://www.ikub.al/media/iOS/lajme.jpg")); 
      ...... 
      sectionCategories.Add(new SectionCategory("Shtypi i dites", "http://www.ikub.al/media/HP/shtypi.jpg")); 

      sectionGrid.RegisterClassForCell(typeof(SectionViewCell), SectionViewCell.CellID); 
      sectionGrid.Source = new SectionViewSource (sectionCategories,this); 
     } 

: Aşağıda kodudur.

var soonVC = new InProgress ("InProgress"); 
      soonVC.Title = "InProgress"; 
      owner.NavigationController.PushViewController(soonVC, true); 

InProgress ekran .cs dosyası, bir .desigener.cs dosyası ve aşağıdaki gibi .xib dosyası vardır: Ben erişmek zorunda

  • :

    public partial class InProgress : UIViewController 
        { 
    
         String section; 
         public InProgress (String text) : base ("InProgress", null) 
         { 
          section = text; 
         } 
    
         public override void ViewDidLoad() 
         { 
          base.ViewDidLoad(); 
          // Perform any additional setup after loading the view, typically from a nib. 
         } 
         public override void DidReceiveMemoryWarning() 
         { 
          base.DidReceiveMemoryWarning(); 
          // Release any cached data, images, etc that aren't in use. 
         } 
        } 
    
    [Register ("InProgress")] 
        partial class InProgress 
        { 
         [Outlet] 
         [GeneratedCode ("iOS Designer", "1.0")] 
         UILabel labelComingSoon { get; set; } 
    
         void ReleaseDesignerOutlets() 
         { 
          if (labelComingSoon != null) { 
           labelComingSoon.Dispose(); 
           labelComingSoon = null; 
          } 
         } 
        } 
    

    Ama 2 sorunları var Arka öğeyi, gezinme stilini, metin rengini, geri düğmesi metnini, yeni öğeyi vb. değiştirmek için InProgress ekranının gezinme çubuğu.

  • Düzeni .xib dosyasında tasarladığımda merkezde etiket var, ancak aslında gezinme çubuğunun yüksekliğini göz önünde bulundurmadığından ekranın ortasında değil. NavigationBar altında gizli.

Ben

soonVC.NavigationItem.LeftBarButtonItem.Title = " dsf"; 

gibi kod bazı parça denedi ama bana boş nesne sağlar.

Her iki sorun için de bir öneri. senin InProgress sınıfında

InProgress.xib

cevap

0

bunu gibi geri düğmesi metnini ayarlayabilirsiniz: Bir sonraki soru gelince

public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
     // Perform any additional setup after loading the view, typically from a nib. 
     UIBarButtonItem newBackButton = new UIBarButtonItem("dfs",UIBarButtonItemStyle.Plain, (sender,args) => NavigationController.PopViewController (true)); 
     NavigationItem.SetLeftBarButtonItem (newBackButton, false); 
     // The line below will move the search bar below the nav bar 
     NavigationController.NavigationBar.Translucent = false; 
    } 

:

Ben xib düzeni tasarladık

dosya merkezinde etiket var, ancak gerçekte ekranın ortasında değil çünkü almıyor Gezinme çubuğunun yüksekliğini dikkate alarak, bazı yerleşimler Gezinme çubuğunun altında gizlenmiş olabilir.

Autolayout kullanıyor musunuz? Tek yapmanız gereken dikey merkeze bir kısıtlama eklemektir ve görünümde ortalanmalıdır. Xib'inizi yükleyebiliyor musunuz? Autolayout'u kullanmıyorsanız, sadece Navigasyon Kontrol cihazını ayarlamanız gerekecektir. Eğer navbar ayarlarsanız

GÜNCELLEME o nav çubuğunun altında gidecek saydam edilemez etmek.Sen InProgress sınıfta bu ayarlayabilir veya sizi buraya Film şeridinde:

HTH: enter image description here

Ben de burada etiket ortalamak için xib için autolayout sınırlar ekleyebilirsiniz xib xml olduğunu.

+0

.xib dosyasını yükledim. Arama çubuğunun gezinme çubuğunun altında olduğunu düşünüyorum. – Xhulio

+1

Hey arama çubuğu, bar çubuğunun altında gizlidir, eğer nav çubuğunuzu saydam değilse, nav çubuğunun altına iner. Bunu InProgress sınıfında veya ana storyboard'unuzda ayarlayabilirsiniz. –

İlgili konular