Ich habe eine benutzerdefinierte Ansicht auf dem Storyboard, das als Symbolleiste fungiert. Diese Ansicht enthält drei Schaltflächen und ich definiere benutzerdefinierte Ansichten für jede Schaltfläche in ViewDidLoad.ios Ansicht verschwindet nach der Navigation zu anderen Bildschirmen
Wenn ich zu einer anderen Ansicht navigiere, gehe ich zurück zu diesem Originalbildschirm, sowohl der Text als auch die Bilder auf diesen Schaltflächen fehlen. Es gibt nur einen leeren schwarzen Balken. Dies passiert bei einigen Geräten, aber die Ansichten werden gut angezeigt und verschwinden nie auf anderen Geräten.
Was ich habe versucht:
ich ausdrücklich die verborgene Eigenschaft dieser Schaltflächen auf false im ViewWillAppear
btn1.Hidden = false gesetzt haben; btn2.Hidden = false; btn3.Hidden = false;
Ich habe auch versucht, die Schaltflächen in der ViewWillAppear statt der ViewDidLoad zu definieren, um zu sehen, ob das das Problem löst. Sie verschwinden immer noch.
Unten ist mein Code:
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);
}
}
Die Tasten erscheinen und werden zum ersten Mal richtig gezeichnet. Nachdem ich jedoch von dieser Seite weg navigiert bin, sehe ich unten nur noch eine schwarze Ansicht. Keine Tasten