iOS Swift 中的 Android 片段模拟
Posted
技术标签:
【中文标题】iOS Swift 中的 Android 片段模拟【英文标题】:Android fragments analog in iOS's swift 【发布时间】:2016-03-09 03:09:16 【问题描述】:我正在 Swift 中迈出第一步(入手 3 天),需要类似 android 的 Fragments 之类的东西
我需要做什么:
在带有自己的控制器的 xibs 中有一些视图,并将它们膨胀到某个视图容器中,以便它们可以填充所有容器。
例如,我有一个位于 iPad 屏幕左侧的菜单,而在 iPhone 上,该菜单将隐藏在抽屉中。通过点击一个菜单项,我将需要的片段充气到一个容器中,在 iPad 的情况下占据屏幕右侧的 3/4,在 iPhone 的情况下占据全屏。
通过这种方法,我不必担心我的 Fragment 视图显示在哪里,它占据了屏幕的哪个部分(或者可能是整个屏幕),因为它是一个单独的 Fragment,它有自己的控制器,可以被另一个片段替换(或堆叠),如果我想返回堆栈,前一个片段将成为焦点
ios 是否有这样的模拟,或者我该如何实现?
【问题讨论】:
【参考方案1】:为了实现类似于片段的东西,您必须在视图控制器中使用容器视图,并在其中填充 childViewControllers。
文档:Container View Controllers
您可以在 Xcode 的 Interface Builder 的对象库中找到“Container View”元素。
另外,您可以通过以下代码创建要添加的新视图控制器:
Obj-C 代码:
//To add child VC
- (void) displayContentController: (UIViewController*) content;
[self addChildViewController:content];
content.view.frame = self.containerView.bounds;
[self.containerView addSubview:content.view];
[content didMoveToParentViewController:self];
//To remove child VC
- (void) hideContentController: (UIViewController*) content
[content willMoveToParentViewController:nil];
[content.view removeFromSuperview];
[content removeFromParentViewController];
【讨论】:
某种意义上的堆叠?如果您想在 Container 视图中堆叠 VC,那么您将不得不在两者之间使用 UINavigationController,就像这里提到的那样。 ***.com/questions/17778700/… 我的意思是,如果需要,我可以从这个片段返回到上一个片段 是的。您必须在容器视图中的 UINavigationViewController 实例上调用 popViewController 来执行此操作,因为它将维护容器中的 VC 堆栈。以上是关于iOS Swift 中的 Android 片段模拟的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?
CoreData 适用于我的模拟器,但不适用于使用 xCode 6 的 iOS 8 Swift 中的 iPhone
有没有办法通过 iOS/swift 中的蓝牙以编程方式连接 android 和 IOS 设备?
iOS swift 中的错误域 = NSCocoaErrorDomain 代码 = 3840?