Swift:从现有的导航控制器(如 Facebook 或 Snapchat)推送新的导航控制器
Swift: push new navigation controller from an existing navigation controller (like Facebook or Snapchat)
如何从现有的导航控制器推送新的导航控制器,如下图所示的 Facebook 即时文章所做的那样?
在这种情况下,您是否必须创建一个包含主导航控制器的视图控制器架构,该主导航控制器带有半透明导航栏,同时包裹 Facebook 选项卡栏/导航控制器和即时文章导航控制器?
Facebook instant article
编辑:添加了Snapchat示例
您是否在考虑不同的 UINavigationBar
而不是 UINavigationController
?我认为您已经可以为不同的 UIViewController
更改栏外观...如果它是一个问题,那么您可以为 UINavigationController
制作一个 class 并在其中添加功能以更改外观UIViewController
被查看的栏目。
UINavigationController
的委托方法为您提供了类似
的方法
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)
在里面你可以像
一样打勾
if viewController.isKind(of: SomeViewController.self) {
//make this specific change for it
} else if viewController.isKind(of: SomeOtherViewController.self) {
//make this specific change for this other viewController
} else {
//make this for all other
}
如何从现有的导航控制器推送新的导航控制器,如下图所示的 Facebook 即时文章所做的那样?
在这种情况下,您是否必须创建一个包含主导航控制器的视图控制器架构,该主导航控制器带有半透明导航栏,同时包裹 Facebook 选项卡栏/导航控制器和即时文章导航控制器?
Facebook instant article
编辑:添加了Snapchat示例
您是否在考虑不同的 UINavigationBar
而不是 UINavigationController
?我认为您已经可以为不同的 UIViewController
更改栏外观...如果它是一个问题,那么您可以为 UINavigationController
制作一个 class 并在其中添加功能以更改外观UIViewController
被查看的栏目。
UINavigationController
的委托方法为您提供了类似
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)
在里面你可以像
一样打勾if viewController.isKind(of: SomeViewController.self) {
//make this specific change for it
} else if viewController.isKind(of: SomeOtherViewController.self) {
//make this specific change for this other viewController
} else {
//make this for all other
}