MRNavigationController 0.0.4

MRNavigationController 0.0.4

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2014年12月

Martin Rybak 维护。



  • 作者
  • Martin Rybak

UINavigationController 的子类,具有接受 pushpop 块的 pushViewController 方法,以及每个 pushed 控制器的 navigation bartoolbar 可见性设置。以下是一个示例

#import "MRNavigationController.h"

self.vc1 = [[UIViewController alloc] init];
self.vc2 = [[UIViewController alloc] init];
self.nav = [[MRNavigationController alloc] initWithRootViewController:self.vc1 navigationBarHidden:YES toolbarHidden:YES];
[self.nav pushViewController:self.vc2 animated:YES navigationBarHidden:NO toolbarHidden:NO push:^{
    NSLog(@"VC1 pushed VC2");
}
pop:^{
    NSLog(@"VC2 popped");
    self.vc2 = nil;
}];

在这个示例中,导航控制器将显示没有导航栏和工具栏的 vc1 视图控制器。然后打印出第一条日志语句。随后将动画显示具有导航栏和工具栏的 vc2 视图控制器。当按下其返回按钮时,将打印第二条日志语句,vc2 视图控制器将动画离开并从内存中清除,同时不带有导航栏和工具栏的 vc1 视图控制器将再次出现。

无论是否按下返回按钮或通过标准返回方法手动弹出视图控制器,都会执行 pop

  • popViewControllerAnimated
  • popToViewController:animated
  • popToRootViewControllerAnimated

以下父类方法仍然可以使用,但 pushed 视图控制器将默认设置为 navigationBarHidden:NOtoolbarHidden:YES,并且不会执行 push 或 pop 块

  • initWithRootViewController
  • pushViewController:animated

您仍然可以使用自己的代理,这得益于一个出色的库——HTDelegateProxy

要查看实况示例,请下载并运行 Xcode 项目。

安装

我已经以 CocoaPod 的形式发布了这个库,这是安装它的最简单方法。否则,只需将以下 类文件HTDelegateProxy 文件手动复制到您的项目中。