IOS создать, а затем динамически добавлять элементы пользовательского интерфейса - PullRequest
2 голосов
/ 23 декабря 2011

Я не знаю, возможно ли это, но это звучит так, как должно быть.

То, что я хочу сделать, это создать UIViews (или UIViewControllers, которые не совсем уверены, как это будет работать) в Interface Builder, сказать ... 10 из них, и использовать их в соответствии с тем, что выберет пользователь.

Например, в состоянии A я хочу показать ему виджеты 1,2 и 3; в состоянии B виджеты 3,5 и 7 и т. д.

РЕДАКТИРОВАТЬ: то, что я имею в виду под состоянием, это то, что в соответствии с тем, что пользователь выбрал на предыдущих шагах, все они приводят к одному и тому же UIViewController, но он должен отображаться по-разному в соответствии с вышеупомянутым «состоянием». И теперь я не могу создать другой UIViewController для каждой комбинации:)

А также возможность размещать их в родительском представлении является обязательным.

Есть предложения?

1 Ответ

2 голосов
/ 23 декабря 2011

ОК, поэтому, отвечая на ваш комментарий, вы действительно можете делать то, что хотите.Создайте отдельный файл пера для вашего пользовательского представления, скажем, MyView.xib, и сделайте класс владельца файла тем, чем является ваш класс контроллера представления.

Затем в контроллере представления создайте свойство IBOutlet дляпользовательское представление:

@property (nonatomic, assign) IBOutlet MyView * myView;

В файле пера подключите выход myView контроллера представления к представлению верхнего уровня.

Затем, чтобы загрузить представление в коде, всевам нужно сделать это:

[[NSBundle mainBundle] )loadNibNamed: @"MyView" owner: self options: nil];

, и перо будет загружено и присвоено myView.Затем вы можете добавить его в качестве подпредставления.

Чтобы это работало с другим контроллером представления, просто убедитесь, что он имеет одноименную розетку, сделайте вызов loadNibNamed:, и он будет просто работать.

...