iOS ViewController UIImageView重复初始化问题
1. ViewController重复初始化,导致跳转后的界面,点击上一个界面的按钮,发生事件响应
在实现页面跳转时,使用UINavigationController,在AppDelegate.m源码中,对ViewController进行了初始化,导致页面跳转后,在跳转页面可以点击到上一个页面的响应时间。
原因:在工程创建好后,ViewController已经被初始化了一次。
错误代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
ViewController *ViewController = [[ViewController alloc] init];
UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:ViewController];
self.window.rootViewController = navCtrl;
return YES;
}
页面跳转代码:
CameraViewController *camera = [[CameraViewController alloc]init];
[self.navigationController pushViewController:camera animated:YES];
2. UIImageView 重复初始化
场景:在做App的界面登录时,如下控件需要做,在点击时,替换原有图片,换成有对号的图片。
现象:如果重复初始化时,在切换图片时,会看到图片帅新了
解决方法:第二次不需要再次初始化,直接重新赋值就行了
self.img.image = [UIImage imageNamed:@"remPassWdNoChoose.png"];
//重新初始化会导致刷屏
//self.img.frame = CGRectMake(100,100, 36, 36);
//self.img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"aa.png"]];
[self.view addSubview:self.img];