【发布时间】:2014-12-31 10:25:32
【问题描述】:
我对使用原生组件进行 iOS 开发的想法非常感兴趣,因此我正在测试当前可用的两个选项:TMS iCL 和 D.P.F iOS Native Components。不幸的是,我发现它们都有局限性,使它们变得笨重或无法使用,尽管我仍然希望我只是忽略了一些东西,因此我在这里问。
我发现的局限:
- TMS iCL:它要求整个应用程序中的所有原生组件都在同一个表单上!
- D.P.F.:没有允许您将其与 FMX 表单/组件组合的 FMX 包装器。
这是我需要的简化版。我有 3 个表单,一个带有主菜单(作为按钮)的主表单和两个我想要滑入的表单。这是组件结构:
MainForm
UINavigationController
UIButtonA
UIButtonB
UIViewController1
FMXwrapper that wraps Form3 (only in TMS iCL)
Form2
UIViewController2
UIButton2
Form3
Various Firemonkey custom controls
使用 TMS iCL 实现:使用命令 UINavigationController.PushViewController(UIViewController1),FMXwrapper 可以在 Form3(具有 FMX 组件)中滑动。我也可以在 UIViewController2 中滑动,但是这个表单(UIButton2)上的组件没有显示出来,这似乎是因为它在另一个表单上。如果 TMS iCL 真的要求所有组件都在同一个表单上,那么它是没有用的,除非你制作非常小的应用程序,但也许有解决这个问题的方法?
使用 D.P.F. 实现:您实际上可以嵌入来自其他单元的表单,所以这里我可以在 Form2 中滑动,但它只会在这些表单上显示 DPF 组件。因此在 Form3 中滑动不会显示任何组件。是否有任何解决方案或变通方法可以使这项工作发挥作用?
对如何解决任一组件集中的限制有何建议?
【问题讨论】:
-
我认为 TMS iCL 没有这个限制。我在 8 种不同形式中使用 TMS iCL。但是,您的 UIViewController 正在制作它,因此其他表单实际上是当前表单。 DPF IOS 也是如此。您可以在同一个应用程序中混合使用 FMX 和 DPF IOS 表单。但是,如果您使用的是该视图控制器,则这两种形式实际上是一种。
-
使用 TMS iCL,当我调用 UINavigationController.PushViewController(UIViewController2) 时,它确实在 Form 2 的 ViewController2 中滑动,但 ViewController2 上的组件未显示。这就是我遇到的问题。
标签: ios delphi firemonkey delphi-xe6