Какие шаги необходимо выполнить для преобразования пустого приложения в оконное приложение в MonoTouch с использованием Xcode 4.2? - PullRequest
2 голосов
/ 21 января 2012

В продолжение Куда пропал «оконный» проект? , какие шаги необходимы для преобразования пустого приложения в оконное приложение в MonoTouch с использованием Xcode 4.2?

Я изучаю разработку для iOS и прочитал около 1 1/2 книги (последняя из них, "Программирование на iOS: Руководство ранчо для большого ботаника (2-е издание)" - хорошая книга).Я нашел инструкции здесь по преобразованию пустого приложения в оконное приложение для Objective-C.

Я попытался применить эти шаги к примеру приложения MonoTouch, и у меня возникают ошибки во время выполненияк необходимости корневого контроллера представления.

Есть ли сайт, который перечисляет шаги в маленьких словах для простых умов?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Вот шаги, которые я обнаружил, загрузив образец приложения на основе окна из исходного кода одной из моих книг Monotouch (http://www.apress.com/9781430231745), а затем создав пустое решение. Я сравнил файлы и добавил вещи, необходимые для пустого один, чтобы он выглядел (и действовал) как оконный.

  • Измените строку UIApplication.Main (args, null, "AppDelegate"); в Main на UIApplication.Main (args);.

  • Добавить производный от AppDelegate класс в файл Main.cs (внутри пространства имен):

    // The name AppDelegate is referenced in the MainWindow.xib file.
    public partial class AppDelegate : UIApplicationDelegate
    {
        // This method is invoked when the application has loaded its UI and its ready to run
        public override bool FinishedLaunching (UIApplication app, NSDictionary options)
        {
            // If you have defined a view, add it here:
            // window.AddSubview (navigationController.View);

            window.MakeKeyAndVisible ();

            return true;
        }
    }
  • Удалить файл AppDelegate.cs (удалить его из проекта).

  • Добавьте новый Empty iPhone Interface Definition файл и назовите его MainWindow.xib.

  • Добавьте новый пустой файл C # и назовите его MainWindow.xib.designer.cs. Введите следующий код:

    using MonoTouch.Foundation;

    namespace MY_NAMESPACE
    {
        [Register ("AppDelegate")]
        partial class AppDelegate
        {
            [Outlet]
            MonoTouch.UIKit.UIWindow window { get; set; }

            void ReleaseDesignerOutlets ()
            {
                if (window != null) {
                    window.Dispose ();
                    window = null;
                }
            }
        }
    }
  • Измените MY_NAMESPACE на ваше пространство имен.

  • Открыть MainWindow.xib в Интерфейсном Разработчике (Xcode 4.2).

  • Измените класс для владельца файла на UIApplication (третья вкладка - Identity Inspector).

  • Добавьте новый объект Object (найдите object в списке виджетов) и измените класс на AppDelegate.

  • Добавить новый Window объект.

  • Выберите владельца файла, щелкните последнюю вкладку в инспекторах (Connections Inspector) и подключите ссылку делегата к App Delegate.

  • Выберите приложение Delegate и подключите ссылку окна к вашему новому окну.

  • Сохраните изменения файла MainWindow.xib в Интерфейсном Разработчике.

  • Возврат в MonoDevelop.

  • Откройте файл Info.plist и измените Основной интерфейс на MainWindow.

Я получаю предупреждение о Applications are expected to have a root view controller at the end of application launch, но приложение запускается. Я подозреваю, что предупреждение исходит из некоторой разницы в файле .xib. Возможно, версия Xcode 3.2 включает некоторые признаки того, что это контроллер корневого представления. Как мне избавиться от этого предупреждения?

0 голосов
/ 21 января 2012

прочитали около 1 1/2 книг

Большинство книг MonoTouch были написаны до XCode 4, а потом немного изменились.Примечание: только AFAIK Разработка для iOS с использованием MonoTouch Cookbook (из Dimitris ) более поздняя (но я еще не * читал эту; -).

Есть ли сайт, который перечисляет шаги в простых словах для простых умов?

На веб-сайте Xamarin есть множество учебных пособий и примеров , чтобы помочьВы освещаете эти новые (и изменившиеся) вещи.Исходный код примеров также доступен на github для тестирования или просто просмотра их.

Множество других веб-сайтов и отличных блогов также говорят о MonoTouch, новоми необычный API ... Поиск в Google всегда приводит к новым сюрпризам:)

Я получаю ошибки во время выполнения, связанные с необходимостью контроллера корневого представления.

Ошибка?или глоток предупреждение?iOS5 предупреждает об отсутствии корневых контроллеров представления.Вот код, используемый в MonoTouch.Dialog Sample application.

// On iOS5 we use the new window.RootViewController, on older versions, we add the subview
if (UIDevice.CurrentDevice.CheckSystemVersion (5, 0))
    window.RootViewController = navigation; 
else
    window.AddSubview (navigation.View);
...