我需要像iOS 7中的日历中的NavigationBar.
我注意到NavigationBar背后没有任何模糊.

从一个细节视图返回时.这只是NavigationBar"正常" 的"主要".

任何人都知道如何做到这一点?
我试过这样做:
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0, 320, 88)];
Run Code Online (Sandbox Code Playgroud)
但这会将标题和按钮向下移动44px.
我有另一个想法,在其下添加另一个导航栏navigationController.navigationBar,但我在第一个导航栏下面有一行.有谁知道如何删除它?
谢谢!
我有一个困境,我想向用户呈现一个半透明的视图.
我通过实验发现,如果我只是将透明视图推到我的NavigationController堆栈的顶部,它就不会呈现我想要的透明度级别.所以我决定简单地将视图添加为堆栈顶部当前视图的子视图.
此解决方案有效,下面的视图仍然可见,并且视图是"半模态".问题是,如果父视图继承自UITableViewController(就像我的那样),那么我'推'到它的视图,不会覆盖顶部的导航栏.
我真的不希望进入这里,我不得不启用/导航栏上禁用控制每次我推这个观点时的情况,所以我想知道,如果有人知道的任何解决方案,我可以使用,这样的观点我推到UITableViewController实际上会"推过"导航栏?
iphone modal-dialog uiviewcontroller uiview uinavigationcontroller
我有一个导航栏,每侧都有左右两个按钮.我有一个customTitlelabel我设置为titleView的UINavigationItem.
[self.navigationItem setTitleView:customTitleLabel];
一切都很好.问题是,rightbarButton的大小是动态的,基于我在其中一个文本字段中得到的输入.
因此,标题会根据按钮之间的可用空间自动居中.
如何将标题设置为固定位置?
此代码可以更改UINavigationBar应用程序中任何位置的颜色.但是,我注意到它并没有改变UIColor所UINavigationBar使用的 UINavigationController(我来自a UIStoryboard).
UIColor* navBarColor = [UIColor colorWithRed:arc4random()%100/100.0
green:arc4random()%100/100.0
blue:arc4random()%100/100.0
alpha:1];
[[UINavigationBar appearance] setTintColor:navBarColor];
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setAlpha:0.7];
Run Code Online (Sandbox Code Playgroud)
有没有办法访问导航栏的appearance对象UINavigationController's?我知道如何设置单个控制器的色调,但我想对它们的外观进行全局控制.
更新:这是我的错误,代码确实改变了UIColor所有UINavigationBars,但它需要覆盖和揭示根导航控制器(例如呈现模态视图控制器),然后它将重新绘制自己的新UIColors!
谢谢!
在编译我得到的代码时
"对开始/结束外观转换的不平衡调用
<UINavigationController: 0xa98e050>"
警告.
这是我的代码
KVPasscodeViewController *passcodeController = [[KVPasscodeViewController alloc] init];
passcodeController.delegate = self;
UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:passcodeController];
[(UIViewController *)self.delegate presentModalViewController:passcodeNavigationController animated:YES];
Run Code Online (Sandbox Code Playgroud) 如果你在a中拖动UIViewController以开始a 中的交互式弹出过渡UINavigationController,UIViewController则当前的一个已经viewWillAppear:调用,然后是UINavigationControllerDelegate方法navigationController:willShowViewController:animated:
如果取消的过渡,既viewWillAppear:与viewDidAppear:预期得到所谓的顶视图控制器.
然而,无论是委托方法navigationController:willShowViewController:animated:或navigationController:didShowViewController:animated:调用的.
考虑到调用UIViewController视图生命周期方法,似乎至少应调用其中一个或两个.我想知道这是故意还是错误UIViewController.
我真正需要的是能够看到在我的UINavigationController子类或其中取消交互式弹出的时间UINavigationController.有明显的方法吗?
编辑
我仍在寻找解决方案,但我想提一下,我已将此问题报告为Apple的错误.查看文档,没有理由不调用这些委托方法,特别是考虑到调用等效的视图生命周期方法.
EDIT2
我的雷达车票(16823313)今天(2015年5月21日)关闭并按预定标记.:(
Engineering已根据以下信息确定此问题的行为符合预期:
这实际上是正确的行为.从B - > A发生的导航转换,如果你在转换中取消它,你将不会得到didShowViewController:方法.取消这种转变不应被视为从A - > B过渡,因为你从未真正到过A.
view [Will/Did]出现仍应按预期调用.
这种情况相当糟糕,因为它是违反直觉的,但我的答案中的解决方法在可预见的未来应该可以正常工作,至少在我的用例中是这样.
我有一个侧面菜单滑出来显示一个表视图,从那里我有segues使用显示视图控制器.segue必须直接连接到视图控制器; 我不能使用导航控制器.
如何在没有导航控制器的情况下添加带有条形按钮项的导航栏?


cocoa-touch uinavigationbar storyboard uinavigationcontroller ios
我目前正在使用SWRevealViewController作为我的应用程序中的侧边栏菜单.当我单击其中一个选项时,目标视图控制器没有"后退"按钮,因为它没有来自正确的视图控制器(即要返回的页面).
因此,我想在目标视图控制器上手动创建一个后退按钮,它将返回到主视图控制器.
我在这里查看了代码:如何在iOS应用程序中手动设置"返回"目标
但我正在努力在Swift中实现这个(一个接一个错误!).有帮助吗?谢谢!
编辑
我已经尝试了下面的建议,但后面的按钮没有出现.这可能与我在其他视图中隐藏导航栏并在目标视图上执行以下操作有关:
override func viewDidLoad() {
super.viewDidLoad()
navigationController.setNavigationBarHidden(false, animated:true)
var myBackButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
myBackButton.addTarget(self, action: "popToRoot:", forControlEvents: UIControlEvents.TouchUpInside)
var myCustomBackButtonItem:UIBarButtonItem = UIBarButtonItem(customView: myBackButton)
self.navigationItem.leftBarButtonItem = myCustomBackButtonItem
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func popToRoot(sender:UIBarButtonItem){
self.navigationController.popToRootViewControllerAnimated(true)
}
Run Code Online (Sandbox Code Playgroud)
不知道为什么后退按钮不会出现?
编辑
这是我的侧边栏视图控制器中的prepareForSegue.如果有办法检查segue标识符'test',那么我可以从这里设置后退按钮?
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
{
// Set the title of navigation bar by using the menu items
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UINavigationController *destViewController = (UINavigationController*)segue.destinationViewController;
destViewController.title = …Run Code Online (Sandbox Code Playgroud) 我想在swift的左侧显示一个图像.
我尝试添加导航栏按钮项并在那里设置图像.
问题是我必须使用一个非常小的图像才能很好地适应导航栏.但制作如此小的图像会导致像素化,特别是在较大的手机iPhone 6和6 Plus上.
有没有办法使用高质量的图像然后设置框架以适应导航栏的范围?
我的尝试:
var image = UIImage(named: "Harp.png")
image = image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationItem.leftBarButtonItem.frame = CGRectMake(0, 0, 53, 31)
//image.frame = CGRectMake(0, 0, 53, 31)
Run Code Online (Sandbox Code Playgroud)
我尝试先将帧放在图像上,然后放在条形按钮项上.但这是一个错误:
如果没有更多的上下文,表达的类型是不明确的.
UINavigationController有3个控制器,所有的声音非常相似的对我说:topViewController,visibleViewController,和presentedViewController.
您在哪些场景中使用这些控制器?
objective-c uiviewcontroller uinavigationcontroller ios swift
ios ×9
objective-c ×4
iphone ×3
swift ×3
storyboard ×2
cocoa-touch ×1
colors ×1
ios6 ×1
ios7 ×1
modal-dialog ×1
uikit ×1
uiview ×1