Как сделать, чтобы подпредставление iOS добавило себя к представлению - PullRequest
0 голосов
/ 17 июня 2011

Я создал класс окна активности в стиле «тост», который я могу очень просто добавить, создав экземпляр класса, затем инициировав его с помощью кончика «toastView.xib» и добавив его в качестве подпредставления к текущему представлению. .

То, что я хочу сделать, это упростить это, так что мне нужно только инициировать экземпляр. Затем, чтобы сохранить память, я бы хотел добавить подпредставление, только когда всплываю тост. В настоящее время я делаю это одним из двух методов, но для простоты предположим, что это -(void)loadWithLabel:(NSString *)labelString. Когда это происходит, я думаю, что текущий контроллер представления должен передать toastView текущему основному представлению. Основываясь на этом представлении, я хотел бы, чтобы класс toastView добавил себя в качестве подпредставления, поэтому мне нужно меньше работать для реализации этого окна всплывающих окон в контроллерах представления в дальнейшем. Если вы, ребята, есть какие-либо предложения, которые будут приветствоваться! Извините за многословие, это своего рода путать :)

Заранее спасибо!

Сводка желаемого поведения:

Мой текущий контроллер представления (назовите его currentView) выделяет и инициализирует экземпляр класса toastView (назовите его «toast»). Когда требуется тост, currentView отправляет что-то вроде [toast loadToastInView:self.view];, после чего toast вставляется в currentView.view с индексом 0. По истечении установленного времени (или при вызове метода) toast освобождает свое представление от своего superView, currentView пока он не будет призван снова.

1 Ответ

3 голосов
/ 17 июня 2011

Я бы сделал синглтон и назвал бы его тостом. Затем, когда мне понадобился тост, я бы позвонил

[[Toast sharedInstance] loadToastInView:self.view]; 

и

[[Toast sharedInstance] removeToast]; 

Синглтон Toast будет иметь член UIView с именем toastView, который добавляется / удаляется при вызове и загружается из xib при инициализации с помощью

[[NSBundle mainbundle] loadNibNamed@"toastView" owner:self options:nil]
...