我有系统“NavigationViewController – > MyViewController”,我以编程方式想在第三个视图控制器内呈现MyViewController。 问题是我没有导航栏在MyViewController中出现后。 你可以帮我吗? var VC1 = self.storyboard.instantiateViewControllerWithIdentifier("MyViewController") as ViewController self.presentViewController(VC1, animated:true, completion: nil)
所以。 刚开始将IOS代码转换到IOS7,遇到了一些问题。 我有一个UINavigationController ,它有子ViewControllers和我使用pushViewController来显示下一个视图。 使用一组图像创build视差animation,如果自定义UINavigationController来为一组UIImageViews设置animation,并且我的子ViewController都有一个self.backgroundColor = [UIColor clearColor] ,透明度。 从iOS7开始, UINavController通过移动当前视图控制器来更新它的子vc的animation,并且在顶部推动新的视图控制器,我的视差animation看起来很糟糕。 我看到以前的VC移动一下,然后消失。 有什么办法可以恢复以前的UINavigationController pushViewControlleranimation? 我似乎无法在代码中find它。 WelcomeLoginViewController* welcomeLoginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"WelcomeLogin"]; [self.navigationController pushViewController:welcomeLoginViewController animated:YES]; 即使尝试使用: [UIView animateWithDuration:0.75 animations:^{ [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [self.navigationController pushViewController:welcomeLoginViewController animated:NO]; [UIView setAnimationTransition:<specific_animation_form> forView:self.navigationController.view cache:NO]; }]; 有没有人有任何线索?
在我的应用程序中,我想在导航栏中添加图像(徽标)。 我正在使用XCode 4.2和iOS 5。 我知道UINavigationBar , UIToolBar已经在iOS 5中进行了更改。所以iOS 4.2的UINavigationBar代码将无法在iOS 5中工作。 我想在4.2和5版本的UINavigationBar中支持显示图像。 我想在UINavigationBar显示图像,就像下面的截图一样。 请在这方面提供帮助,如果有任何示例代码对我非常有帮助。 谢谢!!!
我试图达到类似苹果的消息应用程序的底部文本input栏的定位行为。 我尝试了很多方法,search高低,有许多类似的问题,但没有一个是令人满意的。 要指定: 在视图的底部有一个UIToolbar 当键盘出现并消失时,工具栏将跟随键盘 当键盘可见时,工具栏应该保持在键盘的顶部 当键盘被隐藏时,工具栏保持(“停放”)在视图的底部 build议的解决scheme: 响应键盘显示通知,手动设置工具栏的animation 此解决scheme不符合第二个要求的特殊情况( 工具栏将在键盘出现并消失时跟随键盘 ): 在iOS 7中,引入了UIScrollViewKeyboardDismissMode 。 它启用交互式手势来解除键盘。 随着用户翻过键盘的上边缘,键盘框架逐渐跟随。 这个解决scheme没有任何东西来适应这种行为,只是把工具栏留在它的animation位置。 另外,这个解决scheme也不能满足第三个要求的特殊情况( 当键盘可见时,工具栏应该保持在键盘顶部 ): 回转。 这个解决scheme需要额外的,烦人的无关代码(我们将在下一个build议的解决scheme中看到)旋转工具栏以响应设备旋转。 解决scheme的另一个问题是: 键盘高度。 有了这个解决scheme,工具栏并不被认为是键盘高度的一部分,所以必须编写额外的代码来支持内容的正确插入。 下一个build议的解 使用UIResponder的inputAccessoryView 这个解决scheme似乎是苹果打算支持这种行为的方式,因为它解决了手动设置工具栏的所有缺点。 但是这个解决scheme完全不符合第四个要求( 当键盘被隐藏时,工具栏停留在视图的底部(“停靠”) )。 看来解决scheme是使用UIResponder的inputAccessoryView ,但不知何故使inputAccessoryView不能移动到视图下方。 我正在寻找干净的代码来完成这一点。 在其他地方有精心的,几乎是高尚的尝试,但如前所述,他们不符合要求。 在我的具体情况下,我正在寻找使用UINavigationController的工具栏,这需要额外的问题,因为这不是UINavigationController行为。 无论如何,我愿意介绍一些哈克修补程序来实现这一点。
可能重复: 如何更改导航栏上“后退”button的标题 情况: 我有一个由导航控制器pipe理的UIViewController。 我可以通过简单地调用self.title = @"title"来设置覆盖UIViewController的导航栏的self.title = @"title" 。 但是,我想能够设置导航栏的后退button文本 (对于不同的语言n'这样..) 问题: 我不知道如何设置后退button的文字。 问题: 如何设置UINavigation栏的后退button(编程不在IB中)?
有没有一种直接的方式来覆盖导航控制器中的导航栏中当前导航栏项目的titleView? 我已经尝试创build一个新的UIView,并用我自己的UIVIewreplacetopView的titleView属性没有成功。 基本上,我想要一个导航栏标题的多行标题。 有什么build议么?
假设我有一个带有2个视图控制器的导航控制器堆栈:VC2在顶部,VC1在下面。 VC1中是否有代码可以检测到VC2刚从堆栈中popup? 由于我试图从VC1的代码中检测到VC2的popup,看起来像viewWillAppear或viewDidAppear这样的东西将不起作用,因为这些方法每次显示VC1时都会触发,包括当它被第一次推入堆栈时。 编辑:似乎我不是很清楚我的原始问题。 这是我想要做的:确定何时显示VC1,因为VC2被从栈顶popup。 这是我不想做的事情:确定何时显示VC1由于被推到堆栈的顶部。 我需要一些方法来检测第一个动作,而不是第二个动作。 注意:我并不特别关心VC2,它可以是任意数量的其他VC从堆栈中popup,我所关心的是当VC1由于某些其他VC开始popup而再次成为堆栈顶部时最佳。
如果我在UINavigationController上推视图控制器和/或呈现模态视图控制器,我怎样才能找出最顶层的UIViewController ? 或者在我的情况下,我想知道如果某个UITableViewController是最重要的或不是。 我试过使用: self.navigationController.topViewController == self …但这不起作用。 我猜这是失败的,因为我在它上面展示了模态视图控制器,并且topViewController只跟踪哪些视图被推送到UINavigationController (而不是模态显示的那些视图)。
我有一个基于导航的应用程序。 第一个视图(rootcontroller)只有三个大button。 没有导航栏。 从那里,一切都是桌面和导航栏。 我正在做这个来显示/隐藏导航栏: MyAppAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.navigationController.navigationBar.hidden = NO; 一旦我离开根控制器,导航栏就会跳到位置,并放在桌面视图的顶部,而不是推下来。 它剪辑桌面的顶部。 回到根控制器在导航栏如何消失不平滑。 是否有一个更顺利/更好的方法来完成只隐藏根控制器的导航栏?
最终编辑 (而不是有一个太长的问题编辑作出澄清最终编辑,请参阅其他编辑如果需要)。 控制器设置 我有一个应用程序设置如下: InitialViewController(ECSlidingViewController的子类) 主导航控制器( UINavigationController子类) 主视图控制器( UIViewController子类) 在initialViewController的viewDidLoad中,我将主控制器加载到Home View Controller中作为它的根。 self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainNavVC"]; 问题 在应用程序的第一次加载时,状态栏和导航栏是分开的。 这是预期的效果。 然而,我然后加载一个模式视图控制器,并closures它,使用标准的方法: [self performSegueWithIdentifier:@"LoadSelectOpponentVC" sender:self]; 然后closures: [self dismissViewControllerAnimated:YES completion:nil]; 这又导致主导航控制器(持有主视图控制器)错误地显示状态栏并重叠: testing plist设置设置为YES – View controller-based status bar appearance 我已经尝试设置edgesForExtendedLayout相关的没有,但没有改变。 logging 我试图注销一些框架,以查看问题发生的地方: 第一次加载: 主导航VC – 查看帧 – {{0,0},{320,480}} Main Nav VC – Nav Bar Frame – {{0, 0}, […]