С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 13

Два segue, Два viewController, Одно отображение

21.01.2016, 20:59. Показов 1379. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Изучаю работу c segue - и столкнулся с проблемой.

Какая стоит передо мной задача. Есть два класса (viewController), один наследуется от другого.
Отображение для них общее.

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

Если делать без storyboard - то все просто. Я создаю нужный мне viewController (initWithXibName) указывая свое отображение.

Здесь же я создал 2 segue - оба получается от соответствующих кнопок. Обе ведут на второе отображение. Но ведь в IB класс указан в настройках.

Я использую функцию prepareForSegue, но не пойму как изменить класс для этого отображения.

Это возможно? Хотелось бы использовать одно отображение, чтобы не плодить второе отображение (потому что просто два режима, просмотр записи, и добавление записи) - но хотелось бы два контроллера.

Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2016, 20:59
Ответы с готовыми решениями:

два viewController-a
помогите изучить один нюанс на котором стопорнулся. Кто-нибудь на примере покажите как передать результат вычислений или текст с одного...

Объединить два условия в одно
Здравствуйте. Есть два условия: REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i 10 IF...

Одно поле разбить на два
Как реализовать средстави SQL такое? FAM Иванов Иван разбить на два поля: FAM | IM Иванов | Иван

6
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
22.01.2016, 16:09
Если у вас 1 View, зачем 2 View Controller'a ? С 1 вьюхой отлично справится 1 VC, просто пропишите функционал, обусловленный какими-то actions/events - по нажатию кнопок Done / Cancel и тд
Например, есть 2 сегвея PresentModally к View, которым управляет ItemDetailViewController.
В TableViewController (делегат), откуда открывается ItemDetailViewController, прописываю:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "Добавить" {
            let navigationController = segue.destinationViewController as! UINavigationController
            let controller = navigationController.topViewController as! ItemDetailViewController
            controller.delegate = self
        } else if segue.identifier == "Редактировать" {
            let navigationController = segue.destinationViewController as! UINavigationController
            let controller = navigationController.topViewController as! ItemDetailViewController
            controller.delegate = self
            if let indexPath = tableView.indexPathForCell(sender as! UITableViewCell) {
                controller.itemToEdit = somelist.items[indexPath.row]
            }
        }
    }
Дальше нужен протокол для экрана добавления/редактирования.
Типа такого:

Objective-C
1
2
3
4
5
6
7
8
9
10
11
protocol ItemDetailViewControllerDelegate: class {
    func itemDetailViewControllerDidCancel(controller: ItemDetailViewController)
    func itemDetailViewController(controller: ItemDetailViewController, didFinishAddingItem item: ваш добавляемый объект)
    func itemDetailViewController(controller: ItemDetailViewController, didFinishEditingItem item: ваш редактируемый объект)
}
 
class ... {
 
weak var delegate: ItemDetailViewControllerDelegate?
 
}
И реализация методов протокола в делегате.
С самого начала VC-делегат вписан в NavigationController (в режиме Storyboard: Editor -> Embed in -> NavigationController)
0
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 13
29.01.2016, 09:34  [ТС]
Спасибо, за подробный ответ!

Это понятно, что в моем случае можно и так реализовать, через 1 контроллер. Теоретически, как можно реализовать, то, что я написал. Нельзя?
0
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
29.01.2016, 14:47
У меня вопрос:
один VC наследуется от другого - какая задача у такой архитектуры? Условный VC уже наследует UIViewController'у, зачем еще один child?
0
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 13
29.01.2016, 15:25  [ТС]
прошу прощения, не совсем понял вопроса) Можно ведь сказать, объект уже наследуется от NSObject зачем еще наследование делать)

У меня есть поведение которое описано в одном UV. другими я хотел его просто расширить. Не хотелось все в один вставлять и разными if-ами разделять
0
29 / 28 / 8
Регистрация: 06.10.2012
Сообщений: 133
30.01.2016, 08:46
Цитата Сообщение от haiatov Посмотреть сообщение
объект уже наследуется от NSObject
ранее было:
Цитата Сообщение от haiatov Посмотреть сообщение
Есть два класса (viewController), один наследуется от другого.
в первом случае мы говорим о модели данных
во втором - о контроллере

где правда?
0
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 13
30.01.2016, 12:49  [ТС]
я утрировал) просто не понял Ваш вопрос, о том, зачем нужен еще один уровень наследования.

На самом деле, я изучаю(вспоминаю) objective-c пользуясь книгами (одна из них Head First) - ну так вот там был еще ios5. Я пытаюсь реализовать примеры из книги, но исползуя новые возможности, в данном случае SEGUE.

В книге используется простой прием. initWithXibName. Который позволяет загрузить любой VC с любым отображением. Здесь же так не получается - поэтому у меня появился этот вопрос)

Понятно, что есть другие пути решения, но хочется именно вникнуть, как все работает - и сделать так же как в книге, но другими методами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2016, 12:49
Помогаю со студенческими работами здесь

Два ноутбука, одно содержимое
Здравствуйте! Суть вопроса такова: есть личный ноутбук, который я ношу на работу и там за ним работаю. Вот на днях начальство должно...

два алгоритма одно приложение
Здравствуйте. Возможно ли одновременное выполнение двух алгоритмов одним приложением (один main.cpp) и если да, где про это можно...

Два окна как одно
Возможно ли такое ? Если да то как или чем ? Есть два сценария нужно сделать между с ними общие переменые то есть если в первом...

Сложить два числа в одно
Здравствуйте, есть два числа в каждом может бить цифра от 1 до 20, пример 5 17 Возможно ли эти числа записать одним который будет от -20...

Объединить два поля БД в одно
Доброго времени суток господа дана задача бд через Bde объеденить поля например создал бд даные студента:фамилия имя год рождения ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru