自定義UINavigationController導航控制器實現傳統的框架(二)
首先自定義一個QBYNavigationController類繼承UINavigationController。接下來就可以在類中做以下幾件事情:
- 1,修改導航控制器的標題文字大小,背景圖片,因為是一次性修改,所以還是在load方法中:
objc
-
(void)load{
UINavigationBar *navBar = [UINavigationBar appearanceWhenContainedIn:self, nil];
// 只要是通過模型設定,都是通過富文字設定
// 設定導航條標題 => UINavigationBar
NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
attrs[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
[navBar setTitleTextAttributes:attrs];// 設定導航條背景圖片
[navBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}
- 2,返回按鈕的實現,其中也包括了隱藏tabBar:
```objc```
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
if (self.childViewControllers.count > 0) {
viewController.hidesBottomBarWhenPushed = YES;
viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem backItemWithimage:[UIImage imageNamed:@"navigationButtonReturn"] highImage:[UIImage imageNamed:@"navigationButtonReturnClick"] target:self action:@selector(back) title:@"返回"];
}
// 正真跳轉
[super pushViewController:viewController animated:animated];
}
- (void)back{
[self popViewControllerAnimated:YES];
}
3,如果要返回手勢的話實現協議<UIGestureRecognizerDelegate>,新增下面程式碼即可:
objc
-
(void)viewDidLoad{
[super viewDidLoad];self.interactivePopGestureRecognizer.delegate = self;
}
pragma mark - UIGestureRecognizerDelegate
-
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
return self.childViewControllers.count > 1;
}
相關文章
- flutter 自定義tab導航-頂部導航-底部導航Flutter
- 【iOS開發-21】UINavigationController導航控制器初始化,導航控制器棧的push和pop跳轉理解...iOSUINavigationController
- uniapp自定義導航欄APP
- android 自定義狀態列和導航欄分析與實現Android
- 微信小程式自定義導航欄微信小程式
- ios自定義簡約導航欄iOS
- 使用client-go實現自定義控制器clientGo
- 自定義事件實現子傳父事件
- .NET 6.0 + WPF 使用 Prism 框架實現導航框架
- iOS系統導航欄自定義標題動畫跳變解析iOS動畫
- iOS使用自定義URL實現控制器之間的跳轉iOS
- Flutter BottomAppBar 自定義路徑 + 貝塞爾曲線實現閒魚底部導航FlutterAPP
- 淺談如何實現自定義的 iterator 之二
- mpvue中小程式自定義導航元件開發指南Vue元件
- 微信小程式自定義導航欄適配指南微信小程式
- 自定義檔案上傳功能實現方法
- 實現左側導航和橫向導航
- 自定義view之實現日曆介面(二)View
- 自定義語言的實現——直譯器模式(二)模式
- 小程式自定義導航欄適配(完美版)
- 自定義右鍵導航選單程式碼例項
- EventSource的自定義實現
- [小程式]高適應性的自定義導航欄開發思路
- Tablayout實現導航欄TabLayout
- 自定義View:畫布實現自定義View(折線圖的實現)View
- 自定義View:自定義屬性(自定義按鈕實現)View
- golang-gin框架實現物件導向-控制器繼承篇Golang框架物件繼承
- 自定義導航欄返回按鈕導致返回手勢失效問題
- 你還在發愁小程式自定義導航欄嗎?
- 基於vue3+electron11實現QQ登入切換|自定義導航欄|托盤|打包Vue
- iOS 導航條自定義返回按鈕後,怎麼實現右滑返回上一級頁面iOS
- Spring Data JPA框架的Repository自定義實現詳解Spring框架
- HarmonyOS NEXT 5.0自定義增強版導航欄元件|鴻蒙ArkUI自定義標題欄元件鴻蒙UI
- html_導航框架HTML框架
- Flutter自定義Banner的實現Flutter
- Flutter自定義View的實現FlutterView
- 《iOS之導航控制器的使用圖解》iOS圖解
- AR 導航的幾種實現思路