草庐IT

UINavigationcontroller

全部标签

ios - UIViewController 加载缓慢直到被触摸

我有一个ViewController,它是从选择表行时执行的segue加载的。此ViewController嵌入在导航Controller(和标签栏Controller)中。我通过设置一个新的导航Controller并获取它的subviewController,然后将一个变量传递给特定的subviewController来为该segue做准备。当我选择一行时,应用程序有时会挂起(大约4-5秒),有时会立即关闭。我注意到如果我触摸屏幕它挂起时下一个View将立即加载。我被什么catch了?编辑,添加代码:functableView(tableView:UITableView,didSel

swift - 重新创建 Apple Music UINavigationController 标题箭头

我正在尝试从Apple新音乐应用程序的“新建”选项卡创建外观:起初,我以为箭头只是一个unicode字符,但我找到的最接近的符号是:﹀,而且它不是垂直对齐的,所以这段代码产生以下内容navigationItem.title="AllGenres﹀"navigationController!.navigationBar.titleTextAttributes=[NSForegroundColorAttributeName:UIColor.redColor()]您对我如何着手做这件事有什么建议吗? 最佳答案 我使用@rounak的解决方

ios - swift : How to change navigation controller's height without adding a toolbar

如何在不添加工具栏的情况下更改导航Controller的高度?这是我要构建的苹果iBooks应用程序的示例。我有一个解决方案,但并不完美(在导航Controller下方添加了一个工具栏,但它非常难看) 最佳答案 我想这就是你想要的,截图你不能改变导航栏的高度,但你可以在它下面放一个View,并使用自动布局和阴影使它看起来像导航栏的一部分。将它设置为你制作的类写一个view作为extendbarclassExtendNavView:UIView{overridefuncwillMoveToWindow(newWindow:UIWind

ios - 将自定义后退按钮设置为看起来像默认后退按钮

我正在尝试制作自定义后退按钮,但也想保留后退按钮的默认外观。我只是想要没有任何文本的默认后退箭头(letnewBackButton=UIBarButtonItem(title:"但这使得后退按钮看起来完全不对。我无法在任何地方找到如何/如何将按钮更改为默认外观。感谢您的帮助。 最佳答案 如果您在Stack上有多个ViewController,默认后退箭头将通过使用下面的简单代码自动出现:-self.navigationController?.backBarButtonItem=UIBarButtonItem(//yourcode);

ios - UINavigationItem TitleView 消失

我正在尝试为导航栏创建自定义titleView。我能够在嵌入导航Controller的RootViewController中设置titleView。当我将第二个ViewController插入堆栈并尝试为此ViewController设置titleView时,它不起作用。titleView快速出现和消失。当我回到上一个ViewController时,这个titleView现在也很快出现和消失。有谁知道为什么会这样,或者如何正确设置titleView而不会闪烁和消失?classFirstViewController:UIViewController{vartitleView:UIView

ios - UINavigationController 图像不以所有设备 iOS 为中心

我在AppDelegate的didFinishLaunchingWithOptions中设置了一个UINavigationController图像,如下所示:varimage:UIImage=UIImage(named:"Header")!UINavigationBar.appearance().setBackgroundImage(image,forBarMetrics:.Default)Header是Assets.xcassets中的文件,其中包含2x和3x大小的图像。我取出了1x尺寸,因为我读到它是必要的,而且无论哪种方式都没有什么不同。在iPhone6上,图像完美居中。而在iP

ios - 在 subview Controller 中取消初始化

我有一个标签栏Controller,其中一个标签包含一个表格View。单击一行时,我会转到一个新的子Controller。在这个新Controller中,我有一个deinit删除观察者并打印“controllerisde-initialisedhere”。当我按下导航栏中的后退按钮时,我可以看到此操作调用了de-init。现在...我在那个子Controller中有另一种方法,它设置选项卡栏Controller的事件选项卡。发生此操作时,我没有看到表明在这种情况下未调用de-init的打印语句。我想知道如何解决这个问题?我担心如果不调用deinit,我会在内存中保留额外的东西。更新:在

ios - 用另一个 View Controller 快速更改 View Controller

假设我有名为A、B、C、D的ViewController。我正在使用推送从A->B->C。现在我想从C转到D,当我从D按下后退按钮时,它应该转到A。我该怎么做?有什么建议么? 最佳答案 您需要使用自定义按钮修改您的后退按钮,并添加一个操作,该操作会将您弹出到您当前所在的UINavigationController内的rootViewController。(popToRootViewController表示从导航堆栈中移除所有其他Controller并转到第一个)在你的最后一个viewController上放置这些行:objectiv

ios - 在单独的 View Controller 上使用 scrollViewDidScroll 时无法更改 UINavigationBar 的样式

我在UINavigationController中嵌入了三个ViewController。FirstViewController导航到SecondTableViewController,后者导航到ThirdDetailViewController。我遇到的问题是在SecondTableViewController中使用scrollViewDidScroll方法自定义statusbar和UINavigationBar的样式时它还会覆盖堆栈中紧随其后的其他ViewController以及所有状态栏样式。有人知道如何防止scrollViewDidScroll方法影响堆栈中的其他ViewCon

ios - 将一个导航栏更改为透明会将所有导航栏更改为透明

我有一个导航Controller嵌入到我的应用程序的第一个View中。当我在一个View上将导航栏更改为透明时,它会将其更改为对所有View透明,但我似乎无法将其改回原样。我希望它对我的一些View透明,但不是全部。要设置为透明我使用:self.navigationController?.navigationBar.setBackgroundImage(UIImage(),forBarMetrics:UIBarMetrics.Default)self.navigationController?.navigationBar.shadowImage=UIImage()self.naviga