我在 iPhone 应用程序的第一个视图中实现了 Facebook 类型的左滑条布局。现在,我想在应用程序中的所有视图控制器(屏幕)中实现这一点,这意味着无论视图如何,单击所有视图顶部的菜单按钮时左滑动条都应该出现。
我的应用程序包含 25-30 个视图控制器,我的滑动条布局应该出现在所有视图中。
任何人都可以建议,我如何在所有视图中包含上面的 FB 布局
提前致谢
拉姆
我在 iPhone 应用程序的第一个视图中实现了 Facebook 类型的左滑条布局。现在,我想在应用程序中的所有视图控制器(屏幕)中实现这一点,这意味着无论视图如何,单击所有视图顶部的菜单按钮时左滑动条都应该出现。
我的应用程序包含 25-30 个视图控制器,我的滑动条布局应该出现在所有视图中。
任何人都可以建议,我如何在所有视图中包含上面的 FB 布局
提前致谢
拉姆
简单,您已经实现FB layout
并正在工作的一个视图控制器。使其成为UIViewController
. 至于其余的所有 ViewController,从您刚刚创建的 MasterClass 继承它们。这样做会使滑动手势对所有 30 个视图控制器都可用。
编辑
让我们看看,我们有 UIViewController,现在首先你创建一个 UIViewController 的子类:比如 FBViewController ..在这个 FBViewController 中你实现 FBLayout 以便滑动和所有工作..在它上面 ..首先使用这个 FBViewController 测试你的应用程序作为 rootViewController 并检查所有功能。一旦一切正常,继续发展。我的意思是这个。
假设您正在创建一个选项卡式应用程序,其中所有三个选项卡都应该具有相同的 FBLayout 样式。然后执行这些步骤。
创建 FBViewController,它继承自 UIViewController(使用 UIViewController 子类模板,还检查生成 XIB 按钮)也有一个 XIB FBViewController.XIB(在其中完全实现 FBLayout。这将是您的基类)
然后从 UIViewController 子类模板再次创建另外三个 ViewController 类(FirstViewController、SecondViewController、ThirdViewController),但是对于这三个不要检查生成 XIB 按钮。这三个将使用基类 FBViewController 的 XIB(如果您想知道如何,请转到第 3 步 :))
转到您创建的 FirstViewController 类的头文件,在那里您可以看到@interface FirstViewController: UIViewController
将其替换为@interface FirstViewController: FBViewController
,但在将 FBViewController.h 导入头文件之前。对其他两个类重复相同的操作 - SecondViewController、ThirdViewController。由于这三个将继承自 FBViewController。在他们viewDidLoad
[super viewDidLoad]
将加载 FBViewController 并生成视图。之后[super viewDidLoad];
你可以实现你自己的方法。
在这三个类中只需更改initWithNibName
方法来更改标签栏名称和标题。
在 appDelegate 中转到didFinishLaunching
方法并将这三个视图控制器放在一个中tabBarController
,将其设置tabBarController
为 rootViewController。
我们完成了。如果你FBViewController
的工作正常。您将看到所有三个类的行为方式相同。感谢传承的力量。
干杯,玩一点,玩得开心。
我有同样的问题。我使用的是 facebook 风格的菜单,并且在所有视图控制器中都需要它。
您可以使用容器控制器。容器控制器可以具有我在 nib 中定义的基本布局,其中包含导航栏和用于切换菜单的栏按钮项,然后添加子视图控制器并根据需要删除它们。这样,您可以将所需的任何视图控制器扔给容器控制器,它会显示它。
您还可以添加手势控制以轻松滑动打开/关闭菜单。
您必须自己制作 Container 控制器,这不是标准的。我认为这是比继承更好的解决方案,因为如果您使用继承,则无法制作例如 UITableViewController,您的所有控制器都将属于您的主类的类型。当然,无论如何你都可以通过委托来解决这个问题。
听起来可能有点棘手,但请参阅我使用的本教程:http: //www.cocoanetics.com/2012/04/ contains-viewcontrollers/
其实没那么难。
编辑:您也可以使用 UINavigationController 。只需将基本视图控制器设置为您要显示的视图控制器,您就可以通过覆盖默认方法来防止它将后退按钮等添加到导航栏。将 UINavigationController 设为rootNavigationController
. 可能更简单。
我强烈建议使用为您处理所有边缘情况的开源解决方案 - 它是最简单、最强大和最可维护的(因为社区会为您提供最新信息)。ViewDeck似乎是最受欢迎的解决方案,尽管我在PPRevealSideViewController上也取得了成功. 它们都提供了一个非常健壮的实现,需要很长时间才能完成(例如,您可以选择在导航栏甚至内容区域上启用滑动以打开菜单)。此外,它们将滑动逻辑和显示的菜单(可以是您喜欢的任何视图控制器,但很可能是表格视图控制器)与您的其他视图控制器分开。这样,任何视图控制器都可以有一个侧面菜单,而无需复制任何代码 - 关注点分离很棒:)
您可以为 SideView 类创建一个 SharedInstance。我正在为 iAD 做同样的事情来展示整个应用程序。请看 iAdSuite 的链接,其中 BannerViewController 是 SharedInstance 所以它们很容易用于所有 View Controller