Tag: uisplitviewcontroller

prefersStatusBarHidden不会被调用

我有一个标准的主要细节的应用程序,我试图有条件地显示/隐藏状态栏。 在MasterViewController中覆盖prefersStatusBarHidden()不会执行任何操作。 它甚至从来没有被调用。 override func prefersStatusBarHidden() -> Bool { return true } 在Info.plist中设置UIViewControllerBasedStatusBarAppearance没有帮助,可能是因为YES已经是默认值了。 调用setNeedsStatusBarAppearanceUpdate()也没有帮助。 我的目标是iOS 9。

当在标签栏控制器内时,分离视图控制器的导航栏较暗

如果将一个拆分视图控制器放置在选项卡栏控制器内,则左侧的导航栏和选项卡栏会较暗。 我附上了截图。 我通过创build一个主 – 细节应用程序,然后添加一个标签栏控制器创build此。 你如何纠正这个问题?

iPad – Popover框架颜色

所以我有一个拆分视图应用程序,我遇到了一个奇怪的UI错误。 这是我最好的尝试来解释它。 如果我以横向模式加载应用程序,根控制器的顶部导航栏是正确的颜色。 我在rootView的ViewWillAppear方法中这样做: self.rvBar.tintColor = [UIColor colorWithRed:59.0/255 green:115.0/255 blue:185.0/255 alpha:1]; 现在当我旋转设备,并通过popover显示视图时,popover是黑色的。 你知道如何将popover的颜色改为蓝色吗? 我已经尝试在拆分视图控制器委托的willHide/ShowViewController方法中这样做,但似乎没有任何工作。 现在回到第二部分,当我回到风景时,上面的行再次被调用,而不是显示蓝色条,现在是灰色! 有没有人见过splitview行为像这样,如果是这样,需要做些什么来解决它? 提前致谢。

iOS 6.0:UISplitViewController Popover损坏或devise由Apple更改?

我已经在Xcode 4.5和部署目标5.1中创build了一个包含主详细模板的项目。 有人可以请帮助我下面的UISplitViewController问题。 在纵向模式下,主视图从左侧淡入。 在纵向模式下,它不会像在iOS 5.0中使用的Popover视图那样显示。 请参阅附件图像。 如何获得主视图作为popup窗口? 无论如何,我可以在景观模式中隐藏主视图吗? 谢谢。

UISplitViewController仅用于详细说明inputAccessoryView

我试图根据消息input工具栏模仿苹果的iMessage应用程序。 苹果有一个UIToolbar ,它是它包含的UITextView的input附件视图,也是实际视图的inputAccessoryView 。 这样,工具栏总是存在,当键盘出现时,它随着键盘滑动。 在iPad上,他们似乎有一个UISplitViewController ,工具栏是详细视图控制器的一部分。 现在,当我有相同的设置,我的细节视图的input附件工具栏延伸到整个宽度,所以就像键盘,它也重叠主视图控制器。 另一方面,苹果以某种方式设法将input配件限制在细节视图的约束范围内。 我怎样才能做到这一点?

仅通过分割视图控制器的一半呈现模态视图控制器

我正在修改现有的iPhone应用程序以在iPad上运行。 在iPhone版本中,当用户点击一个工具栏button时,我会提供一个带有modalTransitionStyle的UIModalTransitionStyleFlipHorizontal的模态视图控制器,这使得一个非常好的“卡片翻转”animation。 iPad界面基于分割视图(实际上是MGSplitViewController )。 工具栏button在细节窗格中,所以当我呈现模式视图控制器时,它占据了整个屏幕,翻转过渡是没有意义的。 为了获得正确的用户交互,我希望模态控制器出现,并且仅在详细视图控制器上进行转换,使主视图控制器保持原样。 有没有办法做到这一点?

UISplitViewController以纵向显示主视图上方的细节

我有一个UINplitViewControllerembeddedUINavigationController与一个UINavigationItembutton切换纵向的主视图的显示。 当视图首次以纵向方向加载时,我想要在细节视图上方显示主视图。 我发现的任何类似的例子都显示了纵向和纵向分割屏幕的纵向和纵向视图,但是当UISplitViewController第一次加载的时候,我需要详细视图是纵向全屏,主视图覆盖了详细视图(就好像主视图已经从左侧扫出)。 有谁知道这是怎么做到的吗?

在纵向中使用UITabBarViewController,而在通用应用程序中横向使用UISplitViewController

我想在纵向iPhone上使用UITabBarViewController,而在iPhone 6/6 +横向或iPad上使用UISplitViewController。 在iPad或iPhone 6/6 +横向上,标签栏项目在最顶层的视图控制器中显示为UITableViewCells。 我真的很希望调用对象不必担心设备或方向,而是将作为input的视图控制器作为input在iPhone上的标签栏中纵向以及在iPad和iPhone 6/6 +上的根视图控制器中,在风景。 以下是我的意思的视觉表示: 我认为很可能使用标签栏图像属性将图像放置在表视图单元格中。 我在Swift中这样做,我认为这个策略可能是这样的: class ResponsiveRootViewController: UIViewController { var viewControllers: NSArray? var responsiveTabBarController: UITabBarController? var responsiveSplitViewController: UISplitViewController? var responsiveRootViewController: UITableViewController? override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) […]

使隐藏/取消隐藏主视图控制器在纵向工作方式与纵向相同

我在一个简单的应用程序中使用分割视图控制器。 将所有内容保留为默认值即可。 换句话说,当按下后退button时,主视图控制器总是在横向上显示并且将纵向上的详细视图控制器覆盖。 我想要做的是使主视图控制器模仿风景相同的function,因为它在纵向。 换句话说,当设备处于横向模式时,我想隐藏主视图控制器,直到我点击后退button,然后我想要它覆盖详细视图控制器。 我想最好的办法是使用下面的代码: – (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return self.bHideMaster; } 这工作,它隐藏主视图控制器在横向模式。 然后我使用下面的代码使其重新出现: – (void)hideUnhidePagesController:(id)sender { [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.30f]; UISplitViewController* spv = self.splitViewController; // Change hide to unhide or vica versa self.bHideMaster= !self.bHideMaster; // Hide the button if master is visible if(self.bHideMaster) { self.navigationItem.leftBarButtonItem = self.pagesBarButton; } […]

iOS:如何检查UIViewControllers是否卸载? (迅速)

每当我点击Master VC中的一行时,我使用的是UISplitViewController我可以看到viewDidLoad()在Detail VC中运行。 这是否意味着我创build一个新的细节VC每行点击实例? 如果是这样,我如何检查Detail VC正在卸载,而且我不只是创build越来越多的新的Detail VCs? 我在斯威夫特有点迷路了 以前我可以NSLog在dealloc(),并看到UIViewController正确卸载。 我在这里Swift有一个deinit函数,但这从来没有被称为: deinit { println("\(__FILE__.lastPathComponent)) : \(__FUNCTION__)") NSNotificationCenter.defaultCenter().removeObserver(self) } 1)我应该在哪里删除我的观察员? 2)当我在Xcode的debugging导航器中查看内存使用情况只是继续上升,永远不会下降。 更新:详细VC被调用如下: if segue.identifier == "addEvent" { if let controller = (segue.destinationViewController as UINavigationController).topViewController as? ManageViewController { controller.manageEvent = nil controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem() controller.navigationItem.leftItemsSupplementBackButton = true } } 我没有做过与我见过的很多例子不同的东西,但是我担心deinit不会被调用 更新:现在工作 – 问题是委托停止deinit被调用(见下面的答案) 我原来的非工作代码是: protocol ManageViewDelegate { func […]