Tag: uinavigationcontroller

iOS应用程序在PushViewController上冻结

我的导航控制器间歇性地冻结推。 它似乎将新的视图控制器添加到堆栈,但animation永远不会发生。 我还有两个容器可以在屏幕上保存视图控制器,在导航控制器冻结之后,我可以很好地与它们交互。 真正有趣的是,如果我尝试将另一个视图控制器推到导航控制器的堆栈上,我注意到堆栈顶部有一个额外的视图控制器(我最初推送的视图控制器冻结了导航控制器)。 因此,如果我在主屏幕上(我们将它称为VC-Home),并尝试推新视图(VC-1)并冻结,则尝试推新视图(VC-2)这是我在推送之前在当前堆栈中看到的内容: { [VC-Home, VC-1] } 和pushViewController被调用后,它保持不变; VC-2不被添加到堆栈。 从我所知道的情况来看,导航控制器通过在animation开始之前使以前的视图控制器处于非活动状态来启动animation,但是animation从未发生,导致导航控制器处于冻结状态。 我通过调用UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController")从故事板创build新的视图控制器,所以我不认为这里有任何问题。 我也没有重写导航栏上的pushViewController。 关于我的应用程序的一些独特的事情是它是非常高分辨率的图像沉重(使用SDWebImage来pipe理),我一次总是有三个容器在屏幕上(一个导航控制器,一个视图控制器search,一个交互式阴沟/侧面/滑出菜单)。 CPU使用率低,内存使用情况正常(发生冻结时稳定在60-70MB左右)。 有什么想法可能会导致这个或任何debugging技巧,可以帮助我发现真正的问题? 更新 没有唯一的代码UINavigationController,因为我只是推pushViewController()。 这是调用它的代码: func didSelectItem(profile: SimpleProfile) { let vc = UIStoryboard.profileViewController() vc.profile = profile navigationController?.pushViewController(vc, animated: true) } 我推送的ViewController在viewDidLoad中有以下代码: override func viewDidLoad() { super.viewDidLoad() button.roundView() if let type = profile?.profileType { //load multiple view controllers […]

我如何从导航控制器中删除一个视图

我想调用一个新的视图控制器,并从导航控制器堆栈中删除当前的视图控制器。 例如。 我在视图控制器A和我打电话B. 现在我已经在堆栈A,B了。现在我想打电话给C(从B)。 我想堆栈是A,C 谢谢。

如何在UINavigationController的单个视图上强制特定的UIInterfaceOrientation?

好的,情况如下: 我有一个应用程序,我只想在UINavigationController中有一个特定的视图具有横向。 这个视图是一个UIImageView,我正在捕获一个签名(这部分工作真棒)。 所以,像这样: previous view –> signature view –> next view (portrait) (landscape) (portrait) 我似乎无法find一种很好的方法来强制设备方向横向签名屏幕上。 在签名视图上使用纵向方向永远不会有意义,因为实际上没有足够的空间来签署该屏幕宽度。 那么,关于如何做到这一点的任何明智的想法? 我已经考虑可能做模式签名视图,从而打破了导航控制器。 思考?

dismissViewControllerAnimated VS popViewControllerAnimated

我想知道他们有什么不同。 当我可以打电话 [self dismissViewControllerAnimated:YES completion:nil]; 什么时候该打电话 [self.navigationController popViewControllerAnimated:YES]; 根据苹果的文档:dismissViewControllerAnimated的意思是“解除接收器呈现的视图控制器”。 但是我总是不能通过这种方法解雇视图控制器。

导航堆栈在取消iOS 7反滑动手势后变得不可用

我遇到了一个问题,我的导航控制器在启动后取消了新的iOS 7反滑手势后变得不可用。 一些相关信息: 我的应用程序有一个主页与各种活动页面。 主页将导航栏隐藏在viewWillAppear中 主页在viewWillDisappear中隐藏导航栏 -(void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // Let's hide the navbar when we show the home view [self.navigationController setNavigationBarHidden:YES]; … } -(void) viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; // Let's hide the navbar when we show the home view [self.navigationController setNavigationBarHidden:NO]; } 当用户点击主页上的活动图标时,活动的视图控制器被压入堆栈。 如果用户开始在iOS中使用新的后滑动手势,但然后停止手势(即决定不回去),一切都看起来不错。 但是,如果用户导致另一个视图控制器在导航堆栈上被压入,则标签栏将变得不可用,用户将无法从当前视图控制器导航回去。 笔记 只有当我显示/隐藏导航栏时才会发生 我仍然可以慢慢地执行背部手势,只要我不取消手势,一切都会正常工作 导航栏似乎会工作,但点击后退button不会popup视图控制器。

CALayer – 暗影导致性能下降?

所以我在我的导航控制器上做了一些自定义的animation,以及它推动和popupviewControllers的方式。 一切顺利。 只要我添加下面的代码(在UINavigationController的子类),我面临巨大的性能打击。 添加一个阴影后,所有的animation变得非常滞后。 这是预期还是我在代码中做错了什么? // This code gets called once during NavigationController initialization. [self.view setClipsToBounds:NO]; [self.view.layer setCornerRadius:5]; [self.view.layer setShadowOffset:CGSizeMake(0, 20)]; [self.view.layer setShadowColor:[[UIColor yellowColor] CGColor]]; [self.view.layer setShadowRadius:20.0]; [self.view.layer setShadowOpacity:1]; 编辑: 改变我的影子半径为1,它仍然很慢

在相同的动作中popup并推送视图控制器

是可以popup一个视图closures导航堆栈,然后再推直到它? 我试图实现这个部分的平面层次结构,并希望有一个分段控制器,但我不能让分段控制器看起来像我想要的东西,因此,我试图使用导航控制器。 当一个button被点击时,我执行这个代码: [[self navigationController] popViewControllerAnimated:YES]; MapsViewController *aViewController = [[MapsViewController alloc] initWithNibName:@"MapsViewController" bundle:nil]; [self.navigationController pushViewController:aViewController animated:NO]; [aViewController release]; 它popupOK,但没有任何推动的迹象! 任何帮助,将不胜感激。

如何以编程方式在AppDelegate中添加UITabBarController&UINavigationController?

如何在应用程序委托中以编程方式添加UINavigationController & UITabBarController 。

显示导航控制器在上面

我已经在我的应用程序中设置了一个子视图“popup”,我想显示一个navController,如果用户点击子视图popupbutton。 到目前为止,我已经设置了button,但如果我点击button导航控制器出现在我的popup窗口! 我寻找了一些解决scheme,但我没有find任何。 整个控制器实际上显示在一个文件夹,你可以在这里find: https : //github.com/jwilling/JWFolders所以viewDidLoad属于文件夹和rootview。 我试图把它作为popup窗口的子视图,但不起作用。 有谁知道如何治疗? 我已经设置了popup式的程序和navigationController。 提前致谢。 我的代码: navController设置: – (IBAction)dothis:(id)sender { MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; // Set browser options. browser.wantsFullScreenLayout = YES; browser.displayActionButton = YES; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:browser]; [self presentModalViewController:navController animated:YES]; NSMutableArray *photos = [[NSMutableArray alloc] init]; MWPhoto *photo; photo = [MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"star" […]

导航栏正在向上移动到状态栏

我有一个viewController 。 哪些没有navigationBar. 我推着另一个有navigationBar. viewController navigationBar. 哪个正在上升我正在使用下面的代码来显示navigationBar self.navigationController?.setNavigationBarHidden(false, animated: false)