end*_*nda 1 iphone uiview uiwindow
在appdidfinishlaunch我正在加载一个tabbarcontroller作为子视图,然后我加载另一个视图
MySubView * mySubView = [[MySubView alloc] init];
[window addSubview:mySubView];
[mySubView release];
Run Code Online (Sandbox Code Playgroud)
我想通过子视图中的buttonclick关闭该toplayer,所以我设置了一个IBAction并尝试了不同的东西来强制实际视图关闭:
// 1.
[self.view removeFromSuperview];
// 2.
id *delegate = [[UIApplication sharedApplication] delegate];
[[[delegate view] objectAtIndex:0] removeFromSuperview];
//3.
[[[delegate window] view] removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
那么如何从窗口中弹出这个子视图呢?
西蒙欢呼
你可以做几件事.一种方法是为视图分配一个唯一标记,然后使用该标记获取它,所以:
MySubView* mySubView = [[MySubView alloc] init];
[mySubView setTag:100];
[window addSubview:mySubView];
[mySubView release];
// later
[[[delegate window] viewWithTag:100] removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
另一种方法是迭代窗口的子视图,直到找到一个属于您的唯一类的实例,然后删除它.所以:
MySubView* mySubView = nil;
for( UIView* view in [[delegate window] subviews] ) {
if( [view isKindOfClass:[MySubView class]] ) {
mySubView = (MySubView*)view;
break;
}
}
[mySubView removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |