每当我在 Xamarin 中运行 iOS 应用程序时,我似乎都会遇到此问题。
MonoTouch.Foundation.MonoTouchException has been thrown
Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Could not load NIB in bundle: ’NSBundle ... (loaded)' with name ‘RouteMeViewController'
我正在尝试使用 Objective C 库和 Binder 在我负责开发的应用程序中将 GoogleMapsViewController 替换为 RouteMeViewController。我的 AppDelegate 看起来像这样:
namespace ExampleApp.iOS
{
[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
UIWindow window;
RouteMeViewController viewController;
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
window = new UIWindow (UIScreen.MainScreen.Bounds);
viewController = new RouteMeViewController ();
window.RootViewController = viewController;
window.MakeKeyAndVisible ();
return true;
}
}
路由视图控制器
namespace ExampleApp.iOS
{
public partial class RouteMeViewController : UIViewController
{
RMMapView MapView { get; set; }
public RouteMeViewController () : base ("RouteMeViewController", null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
MapView = new RMMapView(View.Frame, new RMOpenStreetMapSource().Handle);
MapView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;
if (UIScreen.MainScreen.Scale > 1.0)
MapView.AdjustTilesForRetinaDisplay = true;
Add (MapView);
}
}
}
非常感谢任何帮助或指导,谢谢!
您的解决方案资源中似乎缺少设计器文件。即使您以编程方式创建控件和视图,您也需要一个需要在其中绘制它们的设计器文件,即使它只是一个空的设计器文件。对于 IOS,您可以使用 XCode。您可以创建扩展名为 .xib 的文件。它们将在您的设备上进行编译,生成的文件扩展名为 .nib。确保 .xib 文件的目标是项目的正确 viewController,否则您仍然会收到错误。
我希望这有帮助。祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)