Чтобы объяснить, какую проблему у меня возник, я быстро объясню сценарий. У меня есть синтезатор, который я создаю, который имеет несколько «контрольных представлений». Один вид управления может быть 4 вертикальными ползунками, а другой - одной большой матрицей или что-то в этом роде. Итак, скажем, у меня есть контрольные точки 1-4. Кроме того, у меня есть два основных раздела (которые представляют собой только представления держателей), которые могут содержать один из четырех видов управления. В любой момент времени sectionA
может иметь controlView4
, а sectionB
может иметь controlView2
. Это прекрасно работает.Тот же UIView в двух местах сразу?
Проблема с этим SectionA
не может иметь ControlView1
, а SectionB
имеет ControlView1
одновременно. Это приводит к нежелательному поведению. Например, если в настоящее время имеет SectionA
ControlView1
в то время как SectionB
имеет ControlView4
(который будет обернуть вокруг ControlView1
на следующей тумблер), чем в следующий раз я переключить SectionB
«s активный ControlView, SectionA
» s ControlView просто исчезнет. (Предположительно потому, что UIKit неявно удаляет его из SectionA
«S подвидов, когда я добавляю его в качестве SectionB
» подвида s.)
Итак, есть некоторое поведение по умолчанию UIView, что не является идеальным для этой модульной схемы я хотел бы реализовать , Это, как говорится, есть способ достичь того, что я хочу, не отклоняясь далеко от лучших практик iOS и разумного дизайна кода?
спасибо. ключ отнимает у меня от этого, мне нужно больше абстракции модели в моей архитектуре, чтобы даже задуматься о том, что я хочу. Ключевыми частями, которые я думаю, являются tabBarVC для выбора между различными VC, такими как MatrixVC a 4SlidersVC, каждый из которых имеет представление и модель для хранения состояния, наконец, с моделями, взаимодействующими с состоянием синтезатора звука синтезатора. хотя этот последний шаг еще не ясен. –
Звучит неплохо. С гибкостью, которую вы описываете, последнее, что вам нужно, - это передача состояния от контроллера к контроллеру. –