Я сделал приложение, содержащее UITabbar, и у меня такое же поведение, но с UIButton.
Это происходит, когда вы не отпускаете объект, для которого вы вызываете removeFromSuperview
, у меня тот же эффект, когда я удалял UIButton из моего представления viewControllers.
В моем случае я все еще мог видеть кнопку, и если я нажимаю на нее, я получаю исключение, например, нераспознанный селектор, посылаемый объекту типа NSCFString.
Но если я изменю вкладку, то вернусь к моему контроллеру представления, где кнопка ранее отображалась после удаления ее из вида, тогда она исчезла.
Итак, мой вывод заключается в том, что если вы не отпустите объект, для которого вы вызываете removeFromSuperview
, то приложение покажет некоторое неожиданное поведение, если у вас есть объект в качестве переменной экземпляра вашего класса, и программно добавили его в представление с помощью addSubView
метод.
Какие у вас варианты: -
Вы можете вызвать removeFromSuperview
для uiview или его объектов подкласса и вызвать release для него или сделать его нулевым.
Вы можете скрывать или отображать эти объекты, используя свойство hidden
вместо удаления их из суперпредставления.
(я не пробовал это точно) Вы можете создать объект UIView
в реализации вашего класса, а затем добавить его как subview
и затем присвоить его переменной вашего экземпляра вашего класса с помощью оператора точки и затем отпустите ранее созданный объект UIView
.
Я не знаю, как мой ответ мог бы помочь вам, но я думаю, что хорошо делиться вашим опытом с другими.