所以我的問題是我沒有創建故事板一個的UITabBarController和我堅持着如何沒有的viewController創建中的UITabBar一樣的項目。因爲我想要做的是我的UITabBarItem的第二項是一個不呈現視圖控制器的操作。如何在沒有一個視圖控制器創建uitabbar上迅速項內襯它
0
A
回答
0
如果你真的想這樣做(這是很非標準UI ......),那麼你可以添加一個空的視圖控制器,但在你的標籤欄的委託實施
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
}
0
我實現了這樣的事情在一個應用程序(關閉按鈕),雖然我使用故事板。關閉按鈕是一個的viewController,但我用下面的代碼來得到它的作用就像一個普通的按鈕:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
// this provides UI feedback that the button has been pressed, even though it leads to the dismissal
if viewController == self.viewControllers![4] {
viewController.tabBarItem.image? = UIImage(named: "TabBarClose")!.imageWithColor(UIColor.red).withRenderingMode(UIImageRenderingMode.alwaysOriginal)
return false
} else {
return true
}
}
override func viewDidDisappear(_ animated: Bool) {
//sets the close button back to original image
self.viewControllers![4].tabBarItem.image = UIImage(named: "TabBarClose")!
}
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
// this is so it never actually goes to the close buttons viewController
currentTab = self.selectedIndex != 4 ? self.selectedIndex:currentTab
saveTabIndexToPreferences(currentTab!)
}
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
// assign functionality to the close button
if item.tag == 100 {// this is old code, there is probably a better way to reference the tab
dismissTabBar()
} else {
}
}
EDIT(對於被問了一個問題)
func selectTabIndexFromPreferences() {
let defaults:UserDefaults = UserDefaults.standard
selectedIndex = defaults.integer(forKey: "songSelectionTabIndex_preference")
}
func saveTabIndexToPreferences(_ index:Int?) {
if index != nil {
let defaults:UserDefaults = UserDefaults.standard
defaults.set(index!, forKey: "songSelectionTabIndex_preference")
}
}
0
有一個API符合的方式來做到這一點。
的UITabBarControllerDelegate
有shouldSelect
方法,你可以實現:https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate/1621166-tabbarcontroller
這些方針的東西:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if (viewController == self.centerViewController) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Test" message:@"This is a test" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[tabBarController presentViewController:alert animated:YES completion:nil];
return NO;
}
return YES;
}
相關問題
- 1. IBOutlets上第二個視圖控制器幫助迅速
- 2. 解僱家從另一個視圖控制器迅速3
- 3. 如何推動要求視圖控制器到導航控制器在迅速
- 4. 內存管理如何在導航控制器上創建視圖控制器
- 5. xcode的迅速故事板單視圖控制器與內部
- 6. 如何創建一個視圖添加到視圖控制器?
- 7. 沒有控制器的UITabbar
- 8. 現在視圖控制器,而當前視圖控制器具有中的UITabBar一樣,但沒有的UITabBarController
- 9. 如何通過ManagedObjectContext到根視圖控制器迅速
- 10. 如何創建委派到一個視圖控制器上的另一個視圖控制器
- 11. 在視圖控制器內創建多個子視圖
- 12. 表視圖控制器自身複製在IOS迅速
- 13. 從收集視圖控制器迅速傳遞圖像到另一個視圖控制器
- 14. dismissViewControllerAnimated關閉所有視圖控制器根[迅速]
- 15. 如何在彈簧控制器內創建一個jwt圖像
- 16. Xcode:如何創建一個彈出視圖控制器出現在另一個視圖控制器
- 17. 如何回到主頁或前視圖 - 控制在迅速3
- 18. UITabBar沒有正確更新一個視圖控制器的方向
- 19. 恰好在IOS根視圖控制器什麼/迅速
- 20. 如何在沒有導航控制器的情況下創建多個視圖?
- 21. 怎麼推編程製成視圖控制器迅速3
- 22. 在UITabBar控制器上設置圖像
- 23. 創建視圖控制器
- 24. CoreData - 如何創建具有迅速
- 25. 如何正確創建一個根視圖控制器?
- 26. 如何創建一個基本視圖控制器
- 27. 上分離視圖控制器呈現視圖控制器,而導航到其他屏幕的ios迅速
- 28. UItabBar更改視圖控制器
- 29. 我想創建UITabBar控制器+ UINavigationBar。我有一些問題
- 30. 登錄後,打開一個新的視圖控制器警報迅速2.0
使用標籤欄界面,但有一個選項卡*不*去一個新的觀點,可能會讓用戶非常困惑。不過,如果你想這樣做,你應該看看'UITabBarControllerDelegate'和/或'UITabBarDelegate' – DonMag