iWi*_*ard 20 iphone objective-c subview
我已将subview(ViewController)添加到我的ViewController:
Location *location = [[Location alloc] initWithNibName:@"Location" bundle:[NSBundle mainBundle]];
[self.subView addSubview:location.view];
Run Code Online (Sandbox Code Playgroud)
我怎样才能删除这个子视图呢?
我知道删除所有子视图是:
for (UIView *subview in [self.view subviews]) {
[subview removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)
fzw*_*zwo 50
快速和脏:为您的视图添加标记,以便稍后识别它:
Location *location = [[Location alloc] initWithNibName:@"Location" bundle:[NSBundle mainBundle]];
UIView *viewToAdd = location.view;
viewToAdd.tag = 17; //you can use any number you like
[self.view addSubview:viewToAdd];
Run Code Online (Sandbox Code Playgroud)
然后,删除:
UIView *viewToRemove = [self.view viewWithTag:17];
[viewToRemove removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
一个更清洁,更快速,更容易阅读和维护备选方案是创建一个变量或属性访问视图:
在界面中:
@property (nonatomic, weak) UIView *locationView;
Run Code Online (Sandbox Code Playgroud)
在实施中:
Location *location = [[Location alloc] initWithNibName:@"Location" bundle:[NSBundle mainBundle]];
UIView *viewToAdd = location.view;
self.locationView = viewToAdd;
[self.view addSubview:viewToAdd];
Run Code Online (Sandbox Code Playgroud)
然后,删除:
[self.locationView removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
也就是说,听取评论者关于玩其他ViewControllers视图的警告.如果您想这样做,请阅读ViewController包含.
创建一个ivar,它可以为您提供对新viewController或仅视图的引用.我将在这里找到viewController
添加属性并进行综合
// .h
@property (nonatomic, strong) Location *location;
// .m
@synthesize location = _location;
Run Code Online (Sandbox Code Playgroud)
现在,当您创建位置设置ivar时
Location *location = [[Location alloc] initWithNibName:@"Location" bundle:[NSBundle mainBundle]];
self.location = location;
[self.subView addSubview:location.view];
Run Code Online (Sandbox Code Playgroud)
现在稍后将其删除
[self.location.view removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
通常,将视图控制器的视图添加到另一个视图中是一条痛苦的道路.对于一些关于此的轻读,请参阅滥用UIViewControllers
你的命名Location可能不是很好,把它称为类似LocationViewController或类似的东西可能更合适.以这种方式进行一致的命名允许任何其他人(或将来你)能够轻松阅读并掌握这是一个viewController而无需打开标题.
| 归档时间: |
|
| 查看次数: |
24209 次 |
| 最近记录: |