对不起新手问题.我在主窗口视图中有一个UITabBar,每个Tab都有一个UINavigationControllers数组.该结构类似于iPod应用程序,通过选择TabBar项目可以看到主视图,然后用户可以通过将视图推送到堆栈来进一步向下钻取NavigationController.
我希望能够做的就是在代码中的任何子视图底部按下TabBar按钮(即,更改TabBar的选定属性并显示启动选项卡的第一个视图控制器) .
任何帮助将不胜感激.
戴夫
iphone cocoa-touch objective-c uinavigationcontroller uitabbar
这是我对标签栏项目的设置:
但是,当单击应用程序内的项目时,未显示1051-id-badge选择的图像,而是显示任何内容:
我的设置有问题吗?有任何想法吗?
所以这就是我所拥有的:一个处理不同UIViewControllers的UITabBarController.在其中一个UIViewController中,我试图在设备旋转到横向时切换显示的视图.重要的是,景观中显示的视图必须占据整个屏幕......
我已经正确实现了这些方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
Run Code Online (Sandbox Code Playgroud)
事实上,我确实正确地进行了旋转,而且我的观点也在变化.我甚至隐藏状态栏,导航栏和标签栏但我仍然在屏幕底部有一个空白区域,这是TabBar的位置...
所以我假设设置tabBar的隐藏属性是不够的,以便在整个屏幕上拥有视图.我认为在TabBarController甚至是MainWindow中都有一些事情可以说"我现在不需要TabBarController".但我不知道如何妥善解决这个问题.
如果有人围绕这个问题,我将不胜感激.
谢谢,萨米.
iphone rotation uitabbarcontroller tabbarcontroller uitabbar
我正在尝试让我的应用记住在应用退出之前最后一次查看哪个标签,以便应用在下次启动时打开到同一个标签.这是iPhone手机功能的功能:我该怎么做?
我在故事板中将UITabBar设置为不透明,但我似乎仍然是透明的.当我设置自定义UITabBarController时setBarStyle
,只有OpaqueBlack可用.
但那个问题最少.无论我做什么,我的视图内容都位于标签栏下方,就像它被ayutolayout忽略一样.在故事板上一切都很好.在运行时搞砸了什么?
哦,最重要的是.问题仅发生在iOS7上!
以下是storyboard中的ViewController设置:
这里是有问题的内容(UITableView),它位于ios7应用程序的UITabBar下.但在故事板中看起来很好:
最后是UITableView约束:
根据我的理解,改变顶部边框颜色的唯一方法是设置背景图像(320x49,顶部有像素线).在我看来,这是唯一的方法(如果我错了,请纠正我).
有没有办法在不使用图像文件的情况下执行此操作?例如,有人帮助我通过从代码创建UIImage来更改NavigationBar底部边框:
UINavigationBar.appearance().shadowImage = UIImage.colorForNavBar(UIColor.redColor())
extension UIImage {
class func colorForNavBar(color: UIColor) -> UIImage {
let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案实际效果很好 它改变了我的底部边框的颜色.
我试图将它应用到TabBar,但没有任何改变.
UITabBar.appearance().shadowImage = UIImage.colorForNavBar(.redColor())
我使用selectionIndicatorImage
的UITabBar
,这是49点高,是这样的:UITabBar.appearance().selectionIndicatorImage = UIImage(named: "bg-tab-selected")
除了iPhone X:
我已经尝试将图像设置为仅在资产目录中垂直切片,但这似乎没有达到预期的效果.由于某种原因,它也水平延伸?顶部有一些填充物.
我有什么想法可以解决这个问题?
在 Xcode 10 中,unselectedItemTintColor 属性正常工作,但在 Xcode 11 和 ios 13 UITabbar 后,unselectedItemTintColor 属性不起作用。
override func viewDidLoad() {
super.viewDidLoad()
myTabbar.unselectedItemTintColor = .red
}
Run Code Online (Sandbox Code Playgroud) 我正在使用3D Touch实现主屏幕快捷方式,并且它运行良好,但是我现在拥有它的方式意味着当快捷方式将用户带到特定的视图控制器时,标签栏和导航栏将丢失.
这是我的代码:
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) {
let rootViewController = window!.rootViewController
switch shortcutType {
case .Favourites:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = storyboard.instantiateViewControllerWithIdentifier("favourites") as! FavouritesTableViewController
rootController.parkPassed = DataManager.sharedInstance.getParkByName(NSUserDefaults.standardUserDefaults().stringForKey("currentPark")!)
self.window?.rootViewController = rootController
self.window?.makeKeyAndVisible()
handled = true
}
return handled
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我需要在代码中进行更改吗?
这是右舷布局(显示了FavouritesTableViewController):
编辑:
这是我更新的代码:
@available(iOS 9.0, *)
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) { …
Run Code Online (Sandbox Code Playgroud) 与播放歌曲时Spotify或Apple Music应用程序的功能类似,它会在UITabBar上放置一个自定义视图:
具有最大容器视图的ViewController中的UITabBarController,以及底部布局指南上方的Container View49pt顶部的自定义视图:
问题:嵌入在底部的UITabBarController中的ViewControllers中的任何内容都不会显示,因为它们隐藏在自定义布局后面.我已经尝试覆盖
size forChildContentContainer
UITabBarController,尝试更新底部布局指南,Nothing.我需要调整UITabBarController的容器视图框架的大小.
再次尝试#1,但尝试通过增加UITabBar的大小来解决隐藏在其后面的内容问题,然后在每个TabBarItem上使用ImageInset将其关闭,并在UITabBar之上添加我的自定义视图.工作得不好.有时我想隐藏自定义视图.
UITabBarController作为root,每个子节点都是一个ViewController,带有一个Container View +我的自定义视图:
但现在我有多个自定义视图实例浮动.如果我想更改其上的标签,则必须将其更改为所有视图.或隐藏等
覆盖UITabBarController的UITabBar属性并返回我的自定义UITabBar(用xib充气),它有一个UITabBar +我的自定义视图.问题:可能是所有人最令人沮丧的尝试.如果使用实例覆盖该属性class MyCustomTabBar : UITabBar {}
,则不会显示任何选项卡!是的,我设定的委托myCustomTabBar
来self
.
倾向于#3,但寻找更好的解决方案.
uitabbar ×10
ios ×6
swift ×4
iphone ×3
cocoa-touch ×1
ios13 ×1
ios7 ×1
iphone-x ×1
objective-c ×1
rotation ×1
sdk ×1
tabs ×1
uiimage ×1
uitabbaritem ×1
xcode6 ×1