如何移除self.view
- 在viewDidLoad中是无法移除的,而应该是- (void)viewDidAppear:(BOOL)animated方法中,原因与程序的生存周期有关
- 具体代码如下
// ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear: animated];
[self.view removeFromSuperview];
}
@end
如何通过tag的方式使用storyboard中创建但为连线的控件
// ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//提前在storyboard中修改目标控件的tag为1
[[self.view viewWithTag:1] removeFromSuperview];
}
@end
- 需要注意:在实际开发中,由于tag使用了递归算法,导致效率较低故应当尽可能避免使用
需求:在一个子view中创建一个segmentcontrol,点击其中一个叫做“消失”的标题,移除自身
- 首先在storyboard中拖线+改标题,将第三个标题改为“消失”
- 选中的那个标题属性叫做selectedSegmentIndex
- 代码如下
- (IBAction)removeSelf:(UISegmentedControl *)sender {
if(sender.selectedSegmentIndex == 2)
{
[sender removeFromSuperview];
}
}
@end