Не удается загрузить представление по умолчанию при навигации из UIImageView в Montouch - PullRequest
0 голосов
/ 22 декабря 2011

Я действительно застрял, я не могу правильно перейти к новому UIViewController с помощью жеста касания при нажатии на UIImageView. Я использую раскадровки MonoTouch. Если я создаю кнопку на своем первом контроллере вида и управляю перетаскиванием ее на свой второй контроллер вида, используя push, навигация работает правильно, и все элементы управления на моем втором контроллере представления создаются. Когда я использую приведенный ниже код в обработчике жестов касания, он переходит ко второму контроллеру представления, но все мои элементы управления пусты, и если я не пытаюсь получить доступ к любому из них, экран просто черный.

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

вот код в представлении контроллера один:

[Export("HandleImageTap")]
public void HandleImageTap(UITapGestureRecognizer recogniser)
{
    ViewControllerTwo myViewController2 = new ViewControllerTwo();
    myViewController2.SelectedID = 2;
    NavigationController.PushViewController(myViewController2, true);
}

Вот конструктор во втором контроллере вида:

public partial class ViewControllerTwo : UIViewController
{
    public int SelectedID { get; set; }

    public ViewControllerTwo (IntPtr handle) : base (handle)
    {

    }

    public ViewControllerTwo () : base (NSObjectFlag.Empty)
    {

    }

Если бы кто-то мог помочь, я был бы бесконечно благодарен, потому что я действительно застрял и был около 1/2 в день!

Большое спасибо,

Davoc

Редактировать: Добавлен: base (NSObjectFlag.Empty) во второй конструктор, поскольку это не изменило поведение.

1 Ответ

0 голосов
/ 22 декабря 2011

Ваш конструктор по умолчанию для ViewControllerTwo () соединен неправильно, попробуйте использовать:

public ViewControllerTwo () : base (NSObjectFlag.Empty)

Кроме того, вы можете посмотреть на UIStoryboardSegue

...