Questions tagged «uinavigationcontroller»

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

16
如何检查视图控制器是模态显示还是被推入导航堆栈?
在我的视图控制器代码中,我该如何区分: 模态呈现 推入导航堆栈 这两个presentingViewController和isMovingToParentViewController是YES在这两种情况下,所以都不是很有益的。 使事情变得复杂的是,我的父视图控制器有时是模态的,将要检查的视图控制器推到该模态上。 事实证明,我的问题是,我嵌入我HtmlViewController的UINavigationController,然后呈现。这就是为什么我自己的尝试和下面的好答案无法正常工作的原因。 HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil]; 我想我最好告诉我的视图控制器何时是模态的,而不是试图确定。

10
像iPhone上的Facebook应用程序一样的SplitView
我想创建一个使用类似于链接中所示导航场景的iPhone应用程序 请注意,我不希望它仅适用于iPad,我希望它完全适用于iPhone,如图所示,当您单击表格视图项时,它将隐藏该表格视图并使该视图全屏显示。我想要有关如何执行此操作的想法,因为我自己无法解决。 谢谢

15
UIRefreshControl-当UITableViewController位于UINavigationController内部时,beginRefreshing不起作用
我已经在UITableViewController(位于UINavigationController内部)中设置了UIRefreshControl,并且它按预期工作(即,下拉触发正确的事件)。但是,如果我以编程beginRefreshing方式在刷新控件上调用实例方法,例如: [self.refreshControl beginRefreshing]; 没发生什么事。它应该向下动画并显示微调框。endRefreshing在刷新后调用该方法时,该方法可以正常工作。 我用这种行为鞭打了一个基本的原型项目,当我的UITableViewController直接添加到应用程序委托的根视图控制器时,它可以正常工作,例如: self.viewController = tableViewController; self.window.rootViewController = self.viewController; 但是,如果我tableViewController先将添加到UINavigationController,然后将导航控制器添加为rootViewController,则该beginRefreshing方法将不再起作用。例如 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController]; self.viewController = navController; self.window.rootViewController = self.viewController; 我的感觉是,这与导航控制器中的嵌套视图层次结构与刷新控件的效果不佳有关-有任何建议吗? 谢谢

6
没有导航栏的UINavigationController?
我有一个通用应用程序,在iPad版本上,我正在使用UISplitViewController它创建类似于Mail应用程序的界面。 我在推送新的“详细信息”视图时遇到了麻烦,因此我决定使用,UINavigationController这样我就可以根据需要推送和弹出视图。但是,我不想使用导航视图或工具栏。但是,无论我做什么,我都无法隐藏导航栏。 我尝试取消选中IB中的“显示导航栏”,并且还尝试了以下设置: [self.navigationController setNavigationBarHidden:YES]; 在viewDidLoad/ viewDidAppear/中viewWillAppear。我还在将要推送的每个视图中都尝试过。没事。 我在这里想念什么吗?是否有可能UINavigationController没有工具栏或导航栏?

12
iOS11中奇怪的uitableview行为。单元格通过导航推送动画向上滚动
我最近将一些代码迁移到了新的iOS 11 beta 5 SDK。 现在,我从UITableView得到一个非常令人困惑的行为。tableview本身并不那么花哨。我有自定义单元格,但大多数情况下只是为了它们的高度。 当我用tableview推送视图控制器时,我会得到一个附加的动画,其中单元会沿着push / pop导航动画“向上滚动”(或可能改变整个tableview框架)并向下滚动。请参阅gif: 我手动创建tableview的loadView方法和设置自动布局约束等于前置,顶部的tableview的上海华盈的底部。超级视图是视图控制器的根视图。 View Controller推送代码非常标准: self.navigationController?.pushViewController(notifVC, animated: true) 相同的代码提供了iOS 10上的正常行为。 您能指出我出什么问题的方向吗? 编辑:我做了一个非常简单的tableview控制器,我可以在那里复制相同的行为。码: class VerySimpleTableViewController : UITableViewController { override func viewDidLoad() { super.viewDidLoad() self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") } override func numberOfSections(in tableView: UITableView) -> Int { return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection …

9
UINavigationController“ pushViewController:animated”的完成处理程序?
我UINavigationController打算使用创建一个应用程序来展示下一个视图控制器。使用iOS5,有一种新的呈现方法UIViewControllers: presentViewController:animated:completion: 现在我问我为什么没有完成处理程序UINavigationController?只有 pushViewController:animated: 是否可以像新创建自己的完成处理程序presentViewController:animated:completion:?

7
如何获得根视图控制器?
我需要一个根视图控制器实例。 我尝试了这些方法: UIViewController *rootViewController = (UIViewController*)[[[UIApplication sharedApplication] keyWindow] rootViewController]; 返回: null: 另外,当我尝试获取控制器数组时: NSArray *viewControllers = self.navigationController.viewControllers; 它仅返回一个控制器,但不是我的根视图控制器。 如果我尝试从导航控制器中获取: UIViewController *root = (UIViewController*)[self.navigationController.viewControllers objectAtIndex:0]; 返回: null: 有什么想法吗?我还能尝试获得根视图控制器的一个实例吗? 谢谢。



12
以编程方式在UINavigationController中设置UINavigationBar的自定义子类
有谁知道UINavigationBar如果我以UINavigationController编程方式实例化(没有IB)如何使用我的自定义子类? UINavigationController在IB中拖动一个,在导航栏下显示一个,然后使用Identity Inspectory我可以更改类类型并设置自己的子类,UINavigationBar但是通过编程我无法设置,navigationBarNavigation Controller的属性为只读... 如何以编程方式自定义导航栏?IB比“代码”更“强大”吗?我相信在IB中可以做的所有事情都可以通过编程来完成。




21
带有嵌入式导航控制器的Popover不考虑后导航的大小
我有一个托管UINavigationController的UIPopoverController,其中包含一个小的层次的视图控制器。 我遵循了文档,并为每个视图控制器设置了视图的popover-context大小,如下所示: [self setContentSizeForViewInPopover:CGSizeMake(320, 500)]; (每个控制器的大小不同) 当我在层次结构中向前导航时,这可以按预期工作-弹出窗口会自动为尺寸更改设置动画效果,以与推送的控制器相对应。 但是,当我通过导航栏的“后退”按钮在视图堆栈中浏览“后退”时,弹出窗口不会改变大小,它的大小与到达的最深视图一样大。这对我来说似乎很糟;我希望弹出窗口在通过视图堆栈弹出时会尊重设置的大小。 我想念什么吗? 谢谢。


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.