我有三个视图控制器embedded导航控制器。 我想从VC1到VC3,以便在VC3中导航项的后退button将引导用户到VC2而不是VC1。 我认为这应该通过在创buildVC3时将VC2添加到VC1和VC3之间的导航堆栈或跳过第二个视图控制器来完成 。 我试过这个: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if let identifier = segue.identifier { switch identifier { case "JumpToThirdVCSegue": if let secondvc = segue.destinationViewController as? SecondViewController { secondvc.performSegueWithIdentifier("ThirdVCSegue", sender: self) } default: break } } } 但我无法得到它的工作。 当视图控制器尚未打开时,也许执行segue是不可能的? 跳过视图控制器/在导航堆栈中添加视图控制器的最佳方法是什么? 我希望这可以帮助你理解我想要做的事情:
UINavigationController有3个控制器,听起来和我非常相似: topViewController , visibleViewController和presentedViewController 。 你在哪些场景中使用这些控制器?
我正在写一个简单的应用程序,有3个视图控制器。 根视图控制器是一个item listing ,基本的表视图。 closures这个视图控制器,我推动两个不同的视图控制器基于一些用户交互 – create item视图控制器或view item视图控制器。 所以,故事板就像一个V,或者什么东西。 在我create item视图控制器,我希望它popup回到根视图控制器当用户创build一个新的项目,但然后推到view item控制器,以便我可以看看新创build的项目。 我似乎无法得到这个工作。 很容易回到根视图控制器,但我无法推动view item控制器。 有任何想法吗? 我在下面粘贴了我的代码。 popupfunction起作用,但新的视图从不出现。 – (void) onSave:(id)sender { CLLocation *currentLocation = [[LocationHelper sharedInstance] currentLocation]; // format the thread object dictionary NSArray* location = @[ @(currentLocation.coordinate.latitude), @(currentLocation.coordinate.longitude) ]; NSDictionary* thread = @{ @"title": _titleField.text, @"text": _textField.text, @"author": @"mustached-bear", @"location": location }; […]
我想以快捷方式在导航栏的左侧显示图像。 我曾尝试添加导航栏button项目,并在那里设置图像。 问题是,我必须使用一个非常小的图像,以适应在导航栏很好。 但是制作这么小的图像会导致像素化,特别是在更大的手机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) 我试图把框架放在图像上,然后在酒吧button项目。 但是这是抛出一个错误: expression的types是不明确的,没有更多的上下文。
我想要像BestBuy应用程序或像下面给出的屏幕截图所示的那样制作自定义导航栏。 我希望这种types的导航始终位于每个viewController的顶部。 如果有人能告诉我的程序或任何forms的帮助,将不胜感激。 谢谢。
我正在使用一个UISplitViewController ,与一个MasterViewController和DetailViewController ,没有UINavigationController 。 当然,Seguanimation为master-> detail,触发 performSegueWithIdentifier("showDetail", sender: self) 在从下往上显示的DetailViewController 。 我怎样才能使animation显示左侧?
加载MKMapView时,我有一个奇怪的崩溃。 发生的模式是当我在一个视图中打开ABPeoplePickerNavigationController时,它反过来触发UINavigationController委托方法 在保存/不保存后,我转到另一个视图 – 它的工作正常。 下一个视图 – 它的工作正常。 但是当我用MKMapView进入视图时,它崩溃了。 没有其他观点有任何问题。 只有加载MKMapView的视图会崩溃,并显示以下日志 *** -[UINavigationBar barStyle]: message sent to deallocated instance 我已经评论了加载mapview的代码中的部分,然后它工作正常。 所以看起来,我的导航栏被释放的地方,当mapview加载。 但是我不能理解的是,在应用程序中没有其他视图有任何问题,只有一个与mapview崩溃。 我已经尝试了不同的testing模式,并确保没有任何其他意见有任何问题。 该应用程序不会在模拟器崩溃。 它只在设备上崩溃。 为什么这个问题只在加载mapview的视图中,而没有其他视图。 我试图分析我的问题。 这是我发现的,但没有太大的帮助。
请原谅我,已经有很多关于如何将UIBarButtonItem添加到NavigationBar的问题,但我似乎无法得到任何解决scheme在我的情况下工作。 这里是一个简单的testing应用程序,我一直在学习UIPageViewController的布局。 我有页面视图控制器很好地工作与三个独特的viewControllers。 我现在想为每个视图控制器设置唯一的rightBarButtonItems 。 我可以在DetailViewController简单地设置一个通用的barButtonItem 。 UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Whatever" style:UIBarButtonItemStylePlain target:self action:@selector(doSomething)]; self.navigationItem.rightBarButtonItem = newButton; 鉴于我需要在pageViewController中的三个页面的每一个独特的button,我不能在detailViewController设置button。 我已经尝试了三个控制器的viewDidAppear上面的代码,但不会出现button。 我也尝试以相同的方式创buildbutton,然后像这样设置,没有运气。 DetailViewController *vc = [[DetailViewController alloc] init]; vc.navigationItem.rightBarButtonItem = newButton; 我知道我在这里附近,我只是不知道如何指定我需要添加一个button导航栏的NavigationController运行detailViewController我的contentViewControllersembedded英寸任何帮助将是伟大的ESPECIALLY SNIPPETS。 作为一个方面的说明,我已经尝试了一些其他方法已经出现问题。 在viewDidLoad设置button,而不是viewDidAppear 这将无法正常工作,因为每次从一个页面滑动到另一个页面时都不会调用viewDidLoad方法。 viewDidAppear方法是,所以我想在那里设置button。 有可能viewWillAppear每次调用,但我没有检查。 在UIPageViewController委托方法中设置button 这是有问题的,如果用户翻翻页面以快速button将无法更改或无法显示。 解 原来我很接近…而不是在UIPageViewController方法中创buildbutton,我只需要在我的三个视图控制器中的每一个中创build一个navigationItem属性。 当控制器在委托方法中实例化时,我只需将navigationItem属性设置为与detailViewController相同。 在我的viewDidApper方法中,我可以创buildbutton。 然后在viewWillDisappear我设置buttonnil 。 您也可以在DetailViewController viewdidLoad上创buildbutton,并在viewdidLoad的viewDidAppear中更改文本和操作。 这里是一个例子。 在委托方法中 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController […]
UINavigationController的文档不包含带有completion:参数的pushViewController方法。
是否有一种方法来检索标签栏控制器的当前可见导航控制器? 例如,我的程序中有两个tabbars(每个都有一个导航控制器),如下所示 – (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { //Method is called when user clicks on a hyperlink in one of view controllers NSDictionary *dict = [self parseQueryString:[url query]]; NSString *userID = [dict objectForKey:@"id"]; NSString *navconTitle = [dict objectForKey:@"navcon"]; //intention is to push a view controller onto the CURRENT navigation stack [navcon pushViewController:someViewController animated:YES]; } } […]