我有下面的代码隐藏并显示导航栏.它在第一个视图加载时隐藏,然后在调用"children"时隐藏.麻烦的是,当他们回到根视图时,我找不到触发它再次隐藏的事件/动作....
我在根页面上有一个"测试"按钮,用于手动执行操作,但它并不漂亮,我希望它是自动的.
-(void)hideBar
{
self.navController.navigationBarHidden = YES;
}
-(void)showBar
{
self.navController.navigationBarHidden = NO;
}
Run Code Online (Sandbox Code Playgroud) 在iOS 7中,Apple添加了一个新的默认导航行为.您可以从屏幕的左边缘滑动以返回导航堆栈.但在我的应用程序中,此行为与我的自定义左菜单冲突.那么,是否可以在UINavigationController中禁用这个新手势?
objective-c uinavigationcontroller uigesturerecognizer ios ios7
我添加了一个导航控件,可以在我的应用中切换视图.但有些观点不应该有"后退"(前一个标题)按钮.有关如何隐藏后退按钮的任何想法?
如何在第一个ViewController或swift中的特定ViewController中隐藏导航栏?
我使用以下代码viewDidLoad()
:
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)
还有viewWillAppear
:
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)
这两种方法都隐藏了所有ViewControllers的导航控制器.
我有一个基于导航的应用程序,我想改变推动和弹出动画的动画.我该怎么办?
编辑2018
这个问题有很多答案,现在已经有一段时间了,我已经重新选择了我认为现在最相关的答案.如果有人不这么认为,请在评论中告诉我
我试图在导航控制器的顶部栏添加刷新按钮但没有成功.
这是标题:
@interface PropertyViewController : UINavigationController {
}
Run Code Online (Sandbox Code Playgroud)
以下是我尝试添加它的方法:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
Run Code Online (Sandbox Code Playgroud) 当UINavigationController
按下a的后退按钮时,我需要执行一个动作(清空一个数组),而按钮仍然会使ViewController
堆栈中的前一个按钮出现.我怎么能用swift完成这个?
我正在尝试覆盖导航控制器中后退按钮的默认操作.我已经在自定义按钮上提供了一个目标操作.奇怪的是,当通过backbutton属性分配它时,它不会注意它们,它只是弹出当前视图并返回到根:
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle: @"Servers"
style:UIBarButtonItemStylePlain
target:self
action:@selector(home)];
self.navigationItem.backBarButtonItem = backButton;
Run Code Online (Sandbox Code Playgroud)
当我把它通过leftBarButtonItem
在navigationItem
调用我的动作,但是那么按钮看起来像一个普通的圆而不是一个带箭头的后面一个:
self.navigationItem.leftBarButtonItem = backButton;
Run Code Online (Sandbox Code Playgroud)
在返回根视图之前,如何让它调用我的自定义操作?有没有办法覆盖默认的后退操作,还是有一种方法在离开视图时总是被调用(viewDidUnload
不这样做)?
iphone cocoa-touch uinavigationcontroller uibarbuttonitem ios
我的 iOS 应用程序使用故事板作为 UI,并使用自定义色调作为导航栏的背景颜色。
我已经在 Xcode 13 beta 5 上测试了我的应用程序,导航栏为“白色”,并且导航栏上的文本不可见。
在https://developer.apple.com/forums/thread/682420的苹果开发者论坛中,它指出“在 iOS 15 中,UIKit 已将scrollEdgeAppearance(默认情况下会生成透明背景)的使用扩展到所有导航栏”。要恢复旧的外观,您必须采用新的 UINavigationBar 外观 API
我将以下代码(来自上面的链接)添加到应用程序委托“application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions”:
if #available(iOS 13, *) {
let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: nil)
let navigationBar = navigationController.navigationBar
let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = UIColor(red: 0.0/255.0, green: 125/255.0, blue: 0.0/255.0, alpha: 1.0)
navigationBar.standardAppearance = appearance;
navigationBar.scrollEdgeAppearance = navigationBar.standardAppearance
navigationBar.isTranslucent = false
}
Run Code Online (Sandbox Code Playgroud)
这并不能解决问题。我仍然在故事板编辑器中为导航栏设置了自定义色调。我是否需要删除自定义色调,或者我是否错误地实现了外观 API?
你知道如何隐藏UINavigationController中的"后退"按钮吗?另外,如何展示它,但我猜这与隐藏它非常相似......
就像邮件应用程序在查看电子邮件时点击"编辑"一样在iPhone上执行.
ios ×9
iphone ×4
swift ×3
objective-c ×2
animation ×1
cocoa-touch ×1
hide ×1
ios15 ×1
ios7 ×1
navigation ×1
xcode ×1
xcode13 ×1