Tag: uiviewcontroller

故事板从视图控制器到本身

我正在试图做一个机制来深入文件/文件夹列表。 这个想法是每次用户select文件夹时显示相同的文件列表视图控制器,并显示文件详细视图控制器,如果他/她select一个文件。 到目前为止,我已经创build了一个从文件列表视图控制器到文件详细视图控制器的segue,并且从文件列表表视图单元格到文件列表表视图控制器创build了一个segue: 这个问题是,只要用户点击单元格,segue就会被执行。 我想从表格视图单元格中删除segue,并从文件列表视图控制器自己。 这样,当用户敲击单元格时,我可以以编程方式触发正确的继续。 所以,我的问题是:是否有可能在Interface Builder中从视图控制器创build一个segue?

如何在没有状态栏重叠的情况下在iOS7上显示视图控制器

当我将应用程序迁移到iOS 7时,当呈现视图控制器时,导航栏出现在状态栏下。 我想很多人都遇到过这个问题。 以下是我所看到的截图: 要求: 新视图必须出现“模态”,即我需要presentViewController。 显示某种导航栏或工具栏,状态栏采用iOS 7风格的导航栏的背景颜色。 它必须在iOS 6上工作。 我正在使用xib来处理布局,并启用了自动布局。 选项: A.将视图的框架向下移动一点。 呃,我们是否回到了iOS 5以前的版本,并且使用了相框? 另外,与自动布局混合通常不是一个好主意。 B.在导航栏下方添加一点空隙。 选项A和B的一个缺点是状态栏不会融入您的导航: C.以编程方式添加约束。 主要的缺点是你将不得不使用约束和计算导航和状态栏的高度。 呸。 D.拉伸导航栏/工具栏的高度以包含状态栏的区域。 在iOS 7上看起来不错,但在iOS 6上rest。您需要以编程方式更新导航栏的高度,并确保视图的其余部分适当更新。 乱。 E.在IB中与iOS6 / 7三angular洲混淆。 多个缺点:你会硬编码的ios6 / 7三angular洲。 也不适用于自动布局。 F.使用嵌套的UINavigationController。 这是我select的解决方法。 见下面的答案。

警告:尝试呈现其视图不在窗口层次结构中的ViewController

在我的一个应用程序中,我从application didReceiveLocalNotification didReceiveLocalNotification方法中调用了一个viewController。 页面加载成功,但显示警告: Warning: Attempt to present <blankPageViewController: 0x1fda5190> on <ViewController: 0x1fd85330> whose view is not in the window hierarchy! 我的代码如下: -(void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { blankPageViewController *myView = [[blankPageViewController alloc] initWithNibName:@"blankPageViewController" bundle: nil]; myView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self.viewController presentViewController:myView animated:NO completion:nil]; }

presentViewController并显示导航栏

我有一个视图控制器层次结构和最顶级的控制器显示为模式,并希望知道如何显示导航栏时使用 'UIViewController:presentViewController:viewControllerToPresent:animated:completion' “presentViewController:animated:completion:”的文档注意: “在iPhone和iPod touch上,呈现的视图始终是全屏显示的。 在iPad上,演示文稿取决于modalPresentationStyle属性中的值。 对于“modalPresentationStyle”,文档说: 演示文稿的风格决定了如何在屏幕上显示模式呈现的视图控制器。 在iPhone和iPod touch上,模式视图控制器总是全屏显示,但在iPad上有几种不同的显示选项。 一旦视图控件显示出来,是否有办法确保导航栏在状态栏下方可见? 我是否应该将文档解释为,您没有获得iPhone / iPod的任何选项,只能在iPad上使用? 以前,我使用'UIViewController:presentModalViewController:animated' ,它工作正常,但自iOS 5.0以来,API已被弃用,所以我切换到新的。 从视觉上看,我所要做的就是让新控制器从屏幕底部滑入,就像旧的API一样。 [用代码更新]: // My root level view: UIViewController *vc = [[RootViewController alloc] initWithNibName:nil bundle:[NSBundle mainBundle]]; navController = [[UINavigationController alloc] initWithRootViewController:vc]; …. // Within the RootViewController, Second view controller is created and added // to the hierarchy. It is […]

popViewController的完成块

当使用dismissViewController解除模态视图控制器时,可以select提供一个完成块。 有没有类似的popViewController ? 完成论证是非常方便的。 例如,我可以使用它阻止从tableview中删除一行,直到模式被closures,让用户看到行animation。 从推视图控制器返回时,我想同样的机会。 我已经尝试将popViewController放置在一个UIViewanimation块中,我可以访问完成块。 但是,这会对正在popup的视图产生一些不需要的副作用。 如果没有这样的方法,有什么解决方法?

如何显示UIActivityIndi​​catorView之前的旋转开始

我想在willAnimateRotationToInterfaceOrientation进行的工作之前显示活动指示器:duration:开始。 大多数情况下,在我的应用程序中,这项工作很快完成,不需要任何活动指示器,但偶尔(第一次轮换,即在caching数据之前,处理大文件时)可能会出现明显的延迟。 而不是重新构build我的应用程序来应付这种罕见的情况下,我宁愿只显示UIActivityIndi​​catorView而应用程序生成caching并更新显示。 问题是(或者似乎是)在willRotateToInterfaceOrientation:duration和willAnimateRotationToInterfaceOrientation:duration:方法之间没有更新显示。 所以要求iOS在willRotate方法中显示UIActivityIndi​​cator视图直到在willAnimateRotation方法之后才会实际影响显示。 以下代码说明了这个问题。 运行时,活动指示器只会非常短暂地出现,并且在完成simulateHardWorkNeededToGetDisplayInShapeBeforeRotation方法之后。 我错过了什么明显的? 如果没有,我怎么能解决这个问题有什么聪明的想法? 更新 :虽然关于种植繁殖到另一个线程等的build议通常是有帮助的,在我的具体情况下,我有一些确实想要阻止主线程来做我的提升。 在应用程序中,我有一个tableView所有的高度需要重新计算。 当 – 这不是一个很常见的用例,或者我甚至不会考虑这种方法 – 有很多行,所有的新高度在[tableView reloadData]中计算(然后caching)。 如果农场的起飞,并让旋转继续,那么在旋转之后,提升之前,我的tableView没有被重新加载。 例如,在横向的情况下,它不占用全部的宽度。 当然,还有其他的解决方法,例如在旋转之前创build一个只有几行的tableView,然后重新加载真正的tableView。 示例代码来说明问题: @implementation ActivityIndicatorViewController @synthesize activityIndicatorView = _pgActivityIndicatorView; @synthesize label = _pgLabel; – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } – (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; { NSLog(@"willRotate"); [self showActivityIndicatorView]; } – (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; { NSLog(@"willAnimateRotation"); […]

在一个容器中拥有超过一个控制器的最好方法是什么?

这是一个ViewController,它有一个容器视图。 请注意,容器只是整个屏幕的一部分,像往常一样。 所以容器的右侧包含VC。 例如,可以是显示零件清单的“零件”。 但是如果我说四个风险投资公司,我想把这个地方放在那个地方 (容器在哪里)。 也许:零件,轮胎,刹车,油。 当然,在这个区域,一次只能显示一个。 真正做到这一点的最好方法是什么? 在过去,我做了四个容器视图(位置和大小完全相同),只是提出了我想要的容器视图,并手动移除了其他三个视图。 这里有什么合适的解决scheme? 注 – 一个相关的问题的确, 一个容器视图实际上可以指向多个VC ? (这样你仍然可以“手动”交换,只需要一个而不是五个匹配的容器视图就简单多了。) 最后,这里是一个在www上find的相关文章… http://sandmoose.com/post/35714028270/storyboards-with-custom-container-view-controllers

如何解决这个问题:“'实例方法'-arrayByPerformingSelector':找不到(返回types默认为'id')”

我看到在一个职位-(id)arrayByPerformingSelector声明在界面应该做的,但是当我尝试它这个声明被视为单独的方法和不完整的实现问题来了…对不起,这是相当愚蠢的疑问,我问,但我一个iOS新手,无法找出这是什么错误.. self.segmentedControl = [[UISegmentedControl alloc] initWithItems:[viewControllers arrayByPerformingSelector:@selector(title)]]; self.segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 当我运行项目线程停止与SIGABRT和控制台窗口 "TableView[866:fe03] -[__NSArrayI arrayByPerformingSelector:]: unrecognized selector sent to instance 0x6e65620 2012-03-07 12:31:16.074 TableView[866:fe03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI arrayByPerformingSelector:]: unrecognized selector sent to instance 0x6e65620'" 如果我必须在声明中使用select器请告诉我如何….谢谢所有:) 🙂

我可以在没有黑条的情况下旋转UIView吗?

我有一个UIView,占用iPhone上的整个窗口。 当它旋转到风景,边缘得到小黑条,直到它卡入到位,我所期望的。 我想使uiview比屏幕更大,所以旋转它不会显示那些黑条,而是显示视图中通常不在屏幕上的部分。 我试图增加视图的框架和边界,但是这似乎并没有做到这一点。 有没有人做到这一点成功?

保持一个UIView或UIViewController在所有其他之上

我正在inheritanceUIApplication来拦截并显示我的TouchDisplay视图中的触摸。 我想扩展应用程序,窗口,委托或主视图控制器,以保持我的TouchDisplay视图在所有其他视图之上。 随着我和其他大多数应用程序的工作,视图和控制器一直添加和删除。 我认为正确的答案将能够处理这些添加和删除,并保持TouchDisplay视图顶部。 乔,谢谢你的帮助