2016-06-07 2 views
1

툴바로 작동하는 스토리 보드에 맞춤보기가 있습니다. 이 뷰에는 세 개의 버튼이 있으며 ViewDidLoad의 각 버튼에 대한 사용자 정의 뷰를 정의합니다.ios보기가 다른 화면으로 이동하면 사라집니다.

다른보기로 이동 한 다음이 원래 화면으로 뒤로 이동하면이 단추의 텍스트와 이미지가 모두 사라집니다. 빈 검은 색 막대 만있어. 이것은 일부 장치에서 발생하지만보기가 잘 표시되고 다른 장치에서는 사라지지 않습니다.

내가 무엇을 시도했다 : 나는 명시 적으로 false를 ViewWillAppear

btn1.Hidden = false로이 버튼의 숨겨진 속성을 설정 한

  • ; btn2.Hidden = false; btn3.Hidden = false;

  • 또한 ViewDidLoad 대신 ViewWillAppear의 버튼을 정의하여 문제가 해결되는지 확인하려고했습니다. 그들은 여전히 ​​사라집니다.

    public override void ViewWillAppear(bool value) 
        { 
         try 
         { 
          base.ViewWillAppear(value); 
    
    
          //icon setup 
    
          //the space between the image and modelFilterText 
          var spacing = 0.3f; 
    
          var icon1 = UIImage.FromBundle("Icons/Home/icon1.png"); 
    
    
          btn1.SetImage(icon1, UIControlState.Normal); 
          btn1.SetTitle("ONE", UIControlState.Normal); 
          btn1.SetTitleColor(UIColor.LightGray, UIControlState.Normal); 
          btn1.Font = UIFont.FromName("BankGothicBT-Light", 12f); 
          btnRequest.TouchUpInside += (object sender, EventArgs e) => 
          { 
           NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); 
    
           NavigationController.PushViewController(view1, true); 
          }; 
    
          // lower the modelFilterText and push it left so it appears centered 
          // below the image 
    
          var imageSize = btn1.ImageView.Image.Size; 
          btn1.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imageSize.Width, -(imageSize.Height + spacing), 
           0.0f); 
    
          // raise the image and push it right so it appears centered 
          // above the modelFilterText 
    
          var titleSize = btn1.TitleLabel.Text.StringSize(btn1.TitleLabel.Font); 
          btn1.ImageEdgeInsets = new UIEdgeInsets(-(titleSize.Height + spacing), 0.0f, 0.0f, 
           -titleSize.Width); 
    
          //Second Icon 
          var icon2 = UIImage.FromBundle("Icons/Home/icon2.png"); 
    
          btn2.SetImage(icon2, UIControlState.Normal); 
          btn2.SetTitle("TWO", UIControlState.Normal); 
          btn2.SetTitleColor(UIColor.LightGray, UIControlState.Normal); 
          btn2.Font = UIFont.FromName("BankGothicBT-Light", 12f); 
    
          btn2.TouchUpInside += 
           (object sender, EventArgs e) => 
          { 
           NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); 
          }; 
    
          // lower the modelFilterText and push it left so it appears centered 
          // below the image 
    
          var imgSize = btn2.ImageView.Image.Size; 
          btn2.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imgSize.Width, -(imgSize.Height + spacing), 0.0f); 
    
          // raise the image and push it right so it appears centered 
          // above the modelFilterText 
    
          var titleLength = btn2.TitleLabel.Text.StringSize(btn2.TitleLabel.Font); 
          btn2.ImageEdgeInsets = new UIEdgeInsets(-(titleLength.Height + spacing), 0.0f, 0.0f, 
           -titleLength.Width); 
    
    
          //Third Icon 
          var icon3 = UIImage.FromBundle("Icons/Home/icon3.png"); 
    
          btn3.SetImage(icon3, UIControlState.Normal); 
          btn3.SetTitle("THREE", UIControlState.Normal); 
          btn3.SetTitleColor(UIColor.LightGray, UIControlState.Normal); 
          btn3.Font = UIFont.FromName("BankGothicBT-Light", 12f); 
    
          btn3.TouchUpInside += (object sender, EventArgs e) => 
          { 
    
           NavigationItem.BackBarButtonItem = new UIBarButtonItem("", UIBarButtonItemStyle.Plain, null); 
    
           NavigationController.PushViewController(view3, true); 
          }; 
    
    
          // lower the modelFilterText and push it left so it appears centered below the image 
    
          var imagSize3 = btn3.ImageView.Image.Size; 
          btn3.TitleEdgeInsets = new UIEdgeInsets(0.0f, -imagSize3.Width, -(imagSize3.Height + spacing), 
           0.0f); 
    
          // raise the image and push it right so it appears centered 
          // above the modelFilterText 
    
          var titleLength3 = btn3.TitleLabel.Text.StringSize(btn3.TitleLabel.Font); 
          btn3.ImageEdgeInsets = new UIEdgeInsets(-(titleLength3.Height + spacing), 0.0f, 0.0f, 
           -titleLength3.Width); 
    
    
         } 
         catch (Exception ex) 
         { 
          Console.WriteLine("View will appear error " + ex.Message + ex.StackTrace); 
         } 
    
        } 
    

    버튼이 표시 제대로 처음 그려집니다 :

다음은 내 코드입니다. 그러나이 페이지에서 나가서 다시 돌아온 후에는 하단에 검은 색보기 만 있습니다. 버튼이 없습니다.

답변

1

나는 단추가 실제로 사라지지 않는다는 것을 배웠다. 그것들은 iOS 도구 모음에 의해 가려져 있습니다.

예를 들어, iOS 툴바가있는 화면으로 이동 한 다음이 홈 페이지로 뒤로 이동하면 NavigationController.SetToolbarHidden 속성이 그 이후의 다른 모든 화면에 대해 true로 설정됩니다.

그래서이 홈 페이지의 ViewWillAppear에서 false로 설정했기 때문에 내 사용자 정의보기가 흐려지지 않습니다.

NavigationController.SetToolbarHidden(true,false) 
관련 문제