草庐IT

uiviewcontrollers

全部标签

ios - 为什么在 performBatchUpdates 中对父 UIViewController 的强引用会泄漏事件?

我刚刚调试完一个非常讨厌的UIViewController漏洞,这样即使在调用dismissViewControllerAnimated之后UIViewController也没有被释放。我将问题追查到以下代码块:self.dataSource.doNotAllowUpdates=YES;[self.collectionViewperformBatchUpdates:^{[self.collectionViewreloadItemsAtIndexPaths:@[indexPath]];}completion:^(BOOLfinished){self.dataSource.doNotAll

ios - UIViewController 生命周期调用结合状态恢复

我正在尝试在使用iOS6+和Storyboard的应用程序中实现状态恢复,但我在寻找防止重复调用繁重方法的方法时遇到了问题。如果我只是启动应用程序,那么我需要在viewDidLoad中设置UI:-(void)viewDidLoad{[superviewDidLoad];[selfsetupUI];}这在正常的、非状态恢复的世界中工作正常。现在我添加了状态恢复,在恢复一些属性后我需要用这些属性更新UI:-(void)decodeRestorableStateWithCoder:(NSCoder*)coder{[superdecodeRestorableStateWithCoder:cod

ios - UIViewController 生命周期调用结合状态恢复

我正在尝试在使用iOS6+和Storyboard的应用程序中实现状态恢复,但我在寻找防止重复调用繁重方法的方法时遇到了问题。如果我只是启动应用程序,那么我需要在viewDidLoad中设置UI:-(void)viewDidLoad{[superviewDidLoad];[selfsetupUI];}这在正常的、非状态恢复的世界中工作正常。现在我添加了状态恢复,在恢复一些属性后我需要用这些属性更新UI:-(void)decodeRestorableStateWithCoder:(NSCoder*)coder{[superdecodeRestorableStateWithCoder:cod

objective-c - UIViewController 的 View 有奇怪的 20px y 边距

我正在将一个UIViewController的View添加到另一个UIViewController的View(使用新的UIViewControllerContainmentAPI)。将vc的View添加为另一个subview后,顶部有一个奇怪的20px边距。我记录了View,它的起点是0,0。但是,当我记录View的superView时,它是:>我显然可以将它的框架更改为0,0。但我想知道这样做的正确方法是什么?为什么vc的view的superview的frame是0,20?我应该修改它还是有更好的方法来绕过这个奇怪的边距?谢谢 最佳答案

objective-c - UIViewController 的 View 有奇怪的 20px y 边距

我正在将一个UIViewController的View添加到另一个UIViewController的View(使用新的UIViewControllerContainmentAPI)。将vc的View添加为另一个subview后,顶部有一个奇怪的20px边距。我记录了View,它的起点是0,0。但是,当我记录View的superView时,它是:>我显然可以将它的框架更改为0,0。但我想知道这样做的正确方法是什么?为什么vc的view的superview的frame是0,20?我应该修改它还是有更好的方法来绕过这个奇怪的边距?谢谢 最佳答案

ios - 如何强制或禁用某些但不是所有 UIViewController 的界面方向?

我的应用有9-10个屏幕。我将UINavigationController嵌入到我的ViewController中。我有几个我只想设置纵向的ViewController:这意味着旋转设备不应该将这些ViewController旋转到横向模式。我尝试了以下解决方案:首先:NSNumber*value=[NSNumbernumberWithInt:UIInterfaceOrientationPortrait];[[UIDevicecurrentDevice]setValue:valueforKey:@"orientation"];但屏幕仍然旋转为横向。第二:我创建了一个自定义ViewCon

ios - 如何强制或禁用某些但不是所有 UIViewController 的界面方向?

我的应用有9-10个屏幕。我将UINavigationController嵌入到我的ViewController中。我有几个我只想设置纵向的ViewController:这意味着旋转设备不应该将这些ViewController旋转到横向模式。我尝试了以下解决方案:首先:NSNumber*value=[NSNumbernumberWithInt:UIInterfaceOrientationPortrait];[[UIDevicecurrentDevice]setValue:valueforKey:@"orientation"];但屏幕仍然旋转为横向。第二:我创建了一个自定义ViewCon

ios - 从 UINavigationController (IOS 5) 弹出 UIViewController 时出现奇怪的动画

我正在实现一个容器ViewController,其中屏幕的一部分是包含UINavigationControllerView的View。我的viewDidLoad:是这样的://...UIViewController*myNavigationController=[self.storyboardinstantiateViewControllerWithIdentifier:@"MyNavigationController"];[selfaddChildViewController:myNavigationController];[self.myContainerViewaddSubvie

ios - 从 UINavigationController (IOS 5) 弹出 UIViewController 时出现奇怪的动画

我正在实现一个容器ViewController,其中屏幕的一部分是包含UINavigationControllerView的View。我的viewDidLoad:是这样的://...UIViewController*myNavigationController=[self.storyboardinstantiateViewControllerWithIdentifier:@"MyNavigationController"];[selfaddChildViewController:myNavigationController];[self.myContainerViewaddSubvie

ios - 当应用程序移动到后台时,是否有一个 UIViewController 方法会自动调用?

我的UIViewController注册我的模型组件在完成下载内容时发出的通知。下载可以在后台进行(通过使用beginBackgroundTaskWithExpirationHandler:)所以显然我不希望我的GUI在后台完成下载时尝试重绘等。所以我想我有两个选择-1)模型知道它何时处于后台/前台并且不会触发通知。2)UIViewController在后台注销通知。选项2)更可取。UIViewController上是否有一个方法在应用程序进入后台时始终被调用?还是UIViewController必须注册才能在应用移至后台时接收通知事件?(似乎viewWillDisappear、vie