4

每当我在 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 在我被赋予工作的应用程序中用 RouteMeViewController 替换 GoogleMapsViewController。我的 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;
    }

}

RouteMeViewController

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);
    }

}

}

非常感谢任何帮助或指导,谢谢!

4

1 回答 1

4

您的解决方案资源中似乎缺少设计器文件。即使您以编程方式创建控件和视图,您也需要一个设计器文件来绘制它们,即使它只是一个空的设计器文件。对于 IOS,您可以使用 XCode。您可以创建扩展名为 .xib 的文件。它们将在您的设备上编译,生成的文件具有扩展名 .nib。确保 .xib 文件的目标是您项目的正确视图控制器,否则您仍然会收到错误消息。

我希望这有帮助。祝你好运!

于 2014-12-30T12:38:08.547 回答