2014-12-15 4 views
3

Кажется, я получаю эту проблему всякий раз, когда запускаю приложение iOS в Xamarin.MonoTouch.Foundation.MonoTouchException выбрано исключение Objective-C. Имя: NSInternalInconsistencyException

MonoTouch.Foundation.MonoTouchException has been thrown 

Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Could not load NIB in bundle: ’NSBundle ... (loaded)' with name ‘RouteMeViewController' 

Я пытаюсь заменить GoogleMapsViewController с RouteMeViewController, используя Objective библиотеку C и подшивки в приложение, которое мне дали работать. Моя 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); 
    } 

} 

}

Любая помощь или направление очень ценится, спасибо!

+0

У вас есть файл 'RouteMeViewController.nib'? он скомпилирован и включен в ваш .app? Если это так, то мы должны увидеть исходный код 'RouteMeViewController'. – poupou

ответ

2

Кажется, вам не хватает файла дизайнера в ресурсах вашего решения. Даже если вы программно создаете элементы управления и представления, вам нужен файл дизайнера, в который они должны быть втянуты, даже если это просто пустой файл конструктора. Для IOS вы можете использовать XCode для этого. Вы можете создавать файлы с расширением .xib. Они будут скомпилированы на вашем устройстве, а полученный файл имеет расширение .nib. Убедитесь, что целевой файл .xib является правильным viewController вашего проекта, иначе вы все равно получите ошибку.

Надеюсь, это поможет. Удачи!