Arhn - архитектура программирования

Неправильное представление ViewController при выполнении модального перехода (с использованием ECSlidingViewController)

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

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Login"];
[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
    self.slidingViewController.topViewController = newTopViewController;

    [self.slidingViewController resetTopView];

}];

Когда я представляю вид регистрации модально после сброса вида сверху с помощью ECSlidingViewController, свойство PresentingViewController контроллера представления регистрации устанавливается на другой контроллер представления, а не на контроллер представления входа.

Я знаю, что очень сложно понять суть вопроса, но если кому-то нужны подробности, чтобы ответить на этот вопрос, не стесняйтесь :)


  • как вы представляете регистрацию VC? 24.05.2013
  • модальный переход от входа в систему vc (с раскадровкой) 25.05.2013
  • О каком контроллере представления сообщает presentingViewController? Это может быть ошибка с ECSlidingViewController, поэтому пример проекта (предпочтительно на GitHub), демонстрирующий проблему, очень поможет. 16.11.2013

Ответы:


1

ECSlidingViewController, кажется, связывается с presentingViewController.

ECSlidingViewController имеет свойство topViewController, и вы должны иметь доступ к контроллеру представления, который, как вы ожидаете, будет presentingViewController оттуда.

Я смог получить доступ к контроллеру представления, который, как вы ожидаете, должен быть presentingViewController, следующим образом:

ECSlidingViewController *ec = (ECSlidingViewController*)self.presentingViewController;
if(ec) {
    UINavigationController *navController = (UINavigationController*)ec.topViewController;

    if(navController && navController.viewControllers.count) {

        UIViewController *top = navController.viewControllers[0];

        // now you'll need to cast top to your presenting view controller's class, eg:
        MyViewController *myVc = (MyViewController*)top;
        [myVc doSomething];
    }
}

Возможно, вы не используете навигационный контроллер в своем приложении, и в этом случае это будет что-то вроде этого (не проверено):

ECSlidingViewController *ec = (ECSlidingViewController*)self.presentingViewController;
if(ec) {
    UIViewController *top = (UIViewController*)ec.topViewController;

    if(vc) {            
        // now you'll need to cast top to your presenting view controller's class, eg:
        MyViewController *myVc = (MyViewController*)top;
        [myVc doSomething];
    }
}
03.04.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..