Questions tagged «uinavigationcontroller»

UINavigationController类实现了专用的iOS视图控制器,该控制器管理分层内容的导航。

14
iPhone仅在第一页上隐藏导航栏
我下面有隐藏和显示导航栏的代码。当第一个视图加载时,它将隐藏,然后在调用“子项”时将其隐藏。麻烦的是,当他们回到根视图时,我找不到触发它再次隐藏的事件/动作...。 我在根页面上有一个“测试”按钮,该按钮可以手动执行操作,但它并不漂亮,我希望它是自动的。 -(void)hideBar { self.navController.navigationBarHidden = YES; } -(void)showBar { self.navController.navigationBarHidden = NO; }



12
如何在Swift中从第一个ViewController隐藏导航栏?
如何快速隐藏第一个ViewController或特定ViewController的导航栏? 我在下面使用了以下代码 viewDidLoad(): override func viewDidLoad() { super.viewDidLoad() self.navigationController?.isNavigationBarHidden = true } 还有 viewWillAppear: override func viewWillAppear(animated: Bool) { self.navigationController?.isNavigationBarHidden = true } 两种方法都对所有ViewController隐藏导航控制器。



21
如何向UINavigationController添加右键?
我试图将刷新按钮添加到导航控制器的顶部栏中,但没有成功。 这是标题: @interface PropertyViewController : UINavigationController { } 这是我尝试添加的方式: - (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; }

29
在导航控制器中设置后退按钮的操作
我正在尝试覆盖导航控制器中后退按钮的默认操作。我为目标提供了自定义按钮上的操作。奇怪的是,尽管通过backbutton属性对其进行分配时,它并不关注它们,而只是弹出当前视图并返回到根目录: UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle: @"Servers" style:UIBarButtonItemStylePlain target:self action:@selector(home)]; self.navigationItem.backBarButtonItem = backButton; 一旦在上设置了它leftBarButtonItem,navigationItem它就会调用我的动作,但是按钮看起来像是普通的圆形按钮,而不是箭头向后的按钮: self.navigationItem.leftBarButtonItem = backButton; 如何返回到根视图之前调用我的自定义操作?有没有办法覆盖默认的后退操作,还是有方法在离开视图时始终被调用(viewDidUnload不这样做)?

11
导航栏显示/隐藏
我有一个带有2个按钮的导航栏的应用程序。当用户双击屏幕时,我想隐藏并显示此导航栏。 最初,导航栏应被隐藏。当用户双击屏幕时,导航栏应该带有动画,就像在iPhone的相册中可以看到的那样。 我该怎么做?建议总是很感激。


25
如何在iOS 8中强制视图控制器定向?
在iOS 8之前,我们将以下代码与supportedInterfaceOrientations和shouldAutoRotate委托方法结合使用,以将应用程序方向强制为任何特定方向。我使用下面的代码片段以编程方式将应用程序旋转到所需的方向。首先,我要更改状态栏的方向。然后,仅呈现并立即消除模态视图会将视图旋转到所需的方向。 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES]; UIViewController *c = [[UIViewController alloc]init]; [self presentViewController:vc animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; 但这在iOS 8中失败了。此外,我在堆栈溢出中看到了一些答案,有人建议我们应该从iOS 8开始始终避免这种方法。 更具体地说,我的应用程序是通用类型的应用程序。共有三个控制器。 First View控制器 -它应支持iPad中的所有方向,并且仅支持iPhone中的纵向(按下主页按钮)。 Second View控制器 -在所有情况下都应仅支持横向景观 Third View控制器 -在所有情况下都仅支持横向景观 我们正在使用导航控制器进行页面导航。从第一个视图控制器的按钮单击动作开始,我们将第二个推入堆栈。因此,当第二个视图控制器到达时,无论设备方向如何,应用程序都应仅锁定横向视图。 下面是我shouldAutorotate和supportedInterfaceOrientations第二个和第三个视图控制器中的方法。 -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscapeRight; } -(BOOL)shouldAutorotate { return NO; } 有没有针对此问题的解决方案或将视图控制器锁定在iOS 8特定方向的更好方法,请帮忙!


8
如何从推送的控制器获取RootViewController?
因此,我从RootViewController推送了一个视图控制器,如下所示: [self.navigationController pushViewController:anotherViewController动画:是]; 但是,从anotherViewController现在开始,我想再次访问RootViewController。 我尝试着 //(现在在anotherViewController内部) /// RootViewController * root =(RootViewController *)self.parentViewController; //没有 // 呃 RootViewController * root =(RootViewController *)[self.navigationController.viewControllers objectAtIndex:0]; //是的!有用 我不确定为什么这样做,也不确定这是否是最好的方法。有人可以评论从您已推入RootViewController的navigationController的控制器中获取RootViewController的更好方法,以及我所做的方法是否可靠?

13
以编程方式获取导航栏的高度
我知道更多视图控制器(导航栏)的存在将UIView按其高度向下推。我也知道这个高度= 44px。我还发现,这种下推保持了[self.view].frame.origin.y = 0。 因此,除了将其设置为常数之外,如何确定此导航栏的高度? 或者,较短的版本,如何确定我的UIView显示在导航栏的顶部? 灯泡开始点亮。不幸的是,如下所述,我还没有发现纠正问题的统一方法。 我相信我的整个问题都围绕着我的自动调整大小掩码。我得出的结论是,无论是否使用UIWebView,都存在相同的症状。症状是,对于Portrait来说,一切都是桃红色的。对于Landscape,最底部的UIButton在TabBar后面弹出。 例如,在一个UIView上,我从上到下都有: UIView –既设置了弹簧(默认情况),也没有支柱 UIScrollView-如果我设置了两个弹簧,并清除了所有其他内容(如UIView),则UIButton会侵入其上方的对象。如果我清除了所有内容,则UIButton可以,但是最顶部的内容隐藏在StatusBar的后面。仅设置顶部的支柱,UIButton向下弹出在Tab栏的后面。 UILabel和UIImage垂直向下–顶部支撑杆设置,其他位置均可灵活使用 只是为了完成一些具有UIWebView的图片: UIWebView-支撑杆:顶部,左侧,右侧弹簧:两者 UIButton –没有设置,即到处都灵活 尽管我的灯泡昏暗,但似乎仍然充满希望。 请多多包涵,因为我需要的空间比简短回复的评论要多。 感谢您尝试了解我真正在钓鱼的目的... 1)每个UIViewController(一个TabBar应用)都有一个UIImage,一些文本以及其他内容。另一个共同点是底部的UIButton。在某些UIViewController上,我在UIButton上方有一个UIWebView。 因此,UIImage,文本等。UIWebView(在某些情况下)UIButton 以上所有内容都是一个UIScrollView。 2)对于具有UIWebView的用户,其autoresizingMask如下所示: — | — ^ | | | — | ←----→| — || | | V UIButton的遮罩没有设置,即到处都是灵活的 在我的-viewDidLoad中,我调用我的-repositionSubViews,在其中执行以下操作: 如果没有UIWebView,则除了将放置在IB中的UIButton居中之外,我什么也不做。 如果确实有UIWebView,则确定其* content * Height并设置其框架以包围整个内容。 UIScrollView *scrollViewInsideWebView = [[webView_ …

8
iOS7:UINavigationController中的UIScrollView偏移量
我目前正在ios 7上迁移我的应用程序,并且在新的Navigationcontroller / bar管理上已经停留了几个小时。 以前,当我们有一个导航控制器时,我们有一个如下代码段: UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]]; 在界面生成器中,我们可以选择为视图设置现有的导航栏,并且所有内容都与真实视图的内容匹配。 好的,现在,我不知道如何使用界面生成器进行正确的设计。我仍然有片段来初始化我的navcontroller。但是在MainViewController的界面构建器中,如果将状态栏设置为半透明或不透明的导航栏,则顶部的偏移为44px(请参见下文)。 界面生成器_________________________和结果 现在,如果我将状态栏设置为none,则顶部没有偏移,但是由于导航栏,模拟器上的视图较小,因此界面生成器中视图的底部被切除。 界面生成器_________________________和结果 我想我确实在这里遗漏了一些东西,但是我无法在iOS7 Transitions Guide中找到有关此主题的任何信息。 谢谢你的帮助 编辑 正如我们在图片中看到的,视图的第一个孩子是同时包含两个标签的UIScrollView,当没有scrollview时不会出现此问题。如果它是UITableView,也会出现。如果标签在UIScrollView外部,则该标签没有偏移。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.