Вот шаги, которые я обнаружил, загрузив образец приложения на основе окна из исходного кода одной из моих книг 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 включает некоторые признаки того, что это контроллер корневого представления. Как мне избавиться от этого предупреждения?