コードの問題はremoveFromSuperview
、ビューを呼び出すと、親ビューによって解放されることです。を呼び出す必要はありませんremoveFromSuperview
。別のビューのサブビューとして追加するだけで、現在のparentViewから削除されます。
だから使用:
for (UIView *view in self.view.subviews)
{
if (view.tag != 666)
{
[self.contentView addSubview:view];
}
}
UIView Class Referenceによると:
addSubview :
サブビューのレシーバーのリストの最後にビューを追加します。
- (void)addSubview:(UIView *)view
パラメーター
見る
The view to be added. This view is retained by the receiver. After being added, this view appears on top of any other subviews.
討論
このメソッドはビューを保持し、次のレスポンダーを新しいスーパービューであるレシーバーに設定します。
ビューはスーパービューを 1 つだけ持つことができます。ビューに既にスーパービューがあり、そのビューがレシーバーでない場合、このメソッドはレシーバーを新しいスーパービューにする前に以前のスーパービューを削除します。