一种是这个button是否被release了。。还有一种比较坑爹的原因是:
[aboutBtnaddTarget:selfaction:@selector(aboutUs:) forControlEvents:UIControlEventTouchDown];
请注意这个红色的冒号!!一般响应函数都是带一个sender参数的!!!
2.关于xib之间用presentViewController跳来跳去的一些问题
一般的来说,再一个viewController的按钮响应神马中使用[self presentViewController:_imgCropperViewController animated:YES completion:nil];来跳到其他页面是正常的,但有个别情况是要注意滴!
一种是需要再相册选完图片后跳转,在- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info函数中跳转可能会报一下警告,然后跳转神马的根本都没出现:
Warning:Attemptto present <finishViewController:0x1e56e0a0>on <ViewController:0x1ec3e000>whose view isnotinthe window hierarchy!
给个解决代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
- (
void
)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *originalImage = [info valueForKey:UIImagePickerControllerOriginalImage];
[picker dismissModalViewControllerAnimated:NO];
photoCropViewController *cropController = [[photoCropViewController alloc] init];
cropController.photoCropImage = originalImage;
[self presentViewController:cropController animated:YES completion:nil];
[cropController release];
}
|
这里要注意的是[picker dismissModalViewControllerAnimated:NO];这行代码,表示先隐藏相册选取界面,特别是这个NO,貌似不能两个页面显示和dismiss操作同时为YES
还有一种是如果在一个viewController类的viewDidLoad函数里做跳转也是会报一个警告然后神马都没出现:
Warning:Attemptto present <ChecklistsViewController:0x10525e90>on <UINavigationController:0x9648270>whilea presentation is in progress!
这种情况只要把这个跳转语句放到viewDidAppear函数里就好了
1.模态切换过渡有几种类型
①. cover vertical从下向上移动,覆盖旧scene
②. flip horizontal 水平翻转
③. cross dissolve 淡入淡出
④. partial curl 翻书切换
2.scene之间数据获取
在原视图控制器中实现方法 在该方法内可以获取原控制器里面的属性,还可以获取目标控制器里面的属性,如:关闭模态场景:
在上一篇有个问题,那就是无法返回到上一个场景。使用UIViewController的方法dismissViewControllerAnimated:completion实现,可以在显示模态场景的视图控制器中调用这个方法,也可以在模态场景的视图控制器中调用它:
1[self dismissViewControllerAnimated:YES completion:nil];
参数completion是一个可选参数,用于指定过渡完毕后将执行的代码块。
另外,在目标视图控制器中,可以使用self.presentingViewController获取源视图控制器;同样在源视图控制器中,可以使用self.presentedViewController获取目标视图控制器。
例如:
12//在目标视图控制器访问源视图控制器的属性
((ViewController *)self.presentingViewController).<property>
12//在源视图控制器访问目标视图控制器的属性
((ViewController *)self.presentedViewController).<property>
其中的括号和类名是必不可少的,目的是将属性强制转换为正确的对象类型。