我最近开始使用Xamarin进行开发,所以我绝不是专家,现在已经在这个问题上停留了大约一天。
首先,我没有使用情节提要。我正在创建自己的自定义视图(xib)并从代码中加载它们
我正在构建一个新的Xamarin.iOS应用,并试图从另一个视图控制器中加载视图控制器。最初,我是从AppDelegate加载第一个控制器,如下所示:
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
window = new UIWindow(UIScreen.MainScreen.Bounds);
appStartUpController = new AppStartUpController();
window.RootViewController = appStartUpController;
window.MakeKeyAndVisible();
return true;
}
这会很好地加载我的AppStartUpController,这基本上只是一个带有背景图像的加载屏幕,而在后台进行API调用时则加载动画。 API调用完成后,我想加载另一个视图控制器。
API调用完成后,我尝试像这样加载下一个Controller:
var controller = new CityPickerViewController();
this.NavigationController.PushViewController(controller, false);
这是我的CityPickerViewController:
public partial class CityPickerViewController : UIViewController
{
CityPicker_View v;
public CityPickerViewController(IntPtr handle) : base(handle)
{
}
public CityPickerViewController ()
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
v = CityPicker_View.Create();
this.View = v;
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(false);
UIImage i = UIImage.FromFile("citypickbackground.jpg");
i = i.Scale(this.View.Frame.Size);
this.View.BackgroundColor = UIColor.FromPatternImage(i);
}
}
我可能在这里缺少明显的东西,但是不会加载CityPickerViewController。如果我在代码中放置一个断点,则viewDidLoad / ViewWillAppear重写将永远不会被命中。
我是一名菜鸟程序员,因此一定会感谢您提供的所有提示。预先感谢!
欢迎您!
请尝试base.NavigationController.PushViewController(controller, true);
,因为您没有本地导航控制器。
您的CityPickerViewController中也可能有问题,因此如果不起作用,请尝试使用其他ViewController。