我最近开始使用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重写将永远不会被命中。
我是一名菜鸟程序员,因此一定会感谢任何提示。预先感谢!
答案 0 :(得分:0)
欢迎您!
请改用base.NavigationController.PushViewController(controller, true);
,因为您没有本地导航控制器。
您的CityPickerViewController中也可能存在问题,因此如果不起作用,请尝试使用其他ViewController。