【发布时间】:2020-02-01 00:26:28
【问题描述】:
我最近开始使用 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 调用完成后,我尝试像这样加载下一个控制器:
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 将永远不会被覆盖。
我是一名新手程序员,如果有任何提示,我一定会很感激。提前致谢!
【问题讨论】:
-
this中的this.NavigationController是什么?我没有看到您将 UINavigationController 添加到堆栈中,在这种情况下,navigationController 属性可以返回 null:developer.apple.com/documentation/uikit/uiviewcontroller/… -
嗨,你解决了吗?
标签: xamarin view uiviewcontroller xamarin.ios xib