2017-10-20 13 views
0

단추를 단추에 추가하고 싶습니다. 네 개의보기 컨트롤러가있는 스토리 보드를 사용하여 탭 막대를 만들었습니다. 사실 탭 응용 프로그램을 사용했습니다. 이제 appdelegate.swift 파일의 프로그래밍 방식으로 tabBar with button at the center 이미지에 표시된대로 tabBar의 가운데에 단추를 추가하고 싶습니다. 난 당신이 탭 막대에 스토리 보드를 사용하여 탭 막대를 만들 때 탭 막대에 단추를 추가하는 방법을 모릅니다. 나는 appdelegate.swift 파일에 스토리 보드를 사용하여 생성 된 tabBar의 참조를 얻는 방법을 모르지만 조용한 검색을 많이하지만 아무 것도 얻지 못합니다. . 저는 아이폰 개발을 처음 접했고 어떤 도움이 저를 크게 도와 줄 것입니다. xcode 9 구문을 사용하여 xcode 9를 사용하고 있습니다.xcode 9의 탭 막대에 단추를 만드는 방법

답변

0

스토리 보드가로드되기 전에 appdelegate.swift 파일이 실행되어 스토리 보드 객체에 액세스 할 수 없습니다. 앱 위임 클래스보다 먼저 appdelegate 파일에 탭 바 객체를 프로그래밍 방식으로 생성 할 수 있습니다. 그것은 전 세계적으로 만들어 질 것입니다. (UIApplication, didFinishLaunchingWithOptions launchOptions : [UIApplicationLaunchOptionsKey : Any]?) -> Bool 메서드에서 탭 바 객체에 아무 것도 할 수 있습니다. 이러한 모든 작업을 수행 한 후에는 viewDidLoad 메서드로 탭 표시 줄 객체를 스토리 보드에 추가 할 수 있습니다. 하지만 전역 변수를 만드는 것은 권장되지 않습니다.

+0

viewDidLoad 메서드에서 스토리 보드를 사용하여 만든 탭 막대에 대한 참조를 가져올 수 있습니까? 그렇다면 나와 함께 몇 줄의 코드를 공유 할 수 있습니까? – naf123

+0

'code' 클래스 컨트롤러 : UIViewController { \t \t @IBOutlet weak var tabBar : UITabBar! viewDidLoad에 FUNC \t \t 오버라이드() { \t \t super.viewDidLoad() \t \t \t \t tabBar.backgroundImage =있는 UIImage (이름 : "STH") \t} } 가' 을 code'이를해야한다 viewController 클래스를 Identity Inspector의 스토리 보드보기 컨트롤러로 사용합니다. 그런 다음 @IBOutlet을 탭 표시 줄에 연결 한 다음 사용하십시오. – hossein

+0

got ... thanks – naf123

0

기본적으로 이미지를 사용하는 버튼이 아닙니다. tabbarcontroller.tabbar를 사용하여 추가하면 프레이밍 또는 제약 조건에 따라 가운데에 하위 뷰를 추가해야합니다. 프레이밍 x은 이미지의 경우 self.tabbar.frame.size.width/2 - mycenterimage.frame.size.width/2입니다. 당신은 단지 tabcontroller 델리게이트를 구현해야합니다. optional public func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool 해당 인덱스에 대해 No를 반환하고 원하는 것을 수행하십시오.

+0

당신은 tabcontroller 델리게이트를 구현하기위한 코드를 공유 할 수 있습니다 ... – naf123

+0

그냥 tabcontroller의 인스턴스를 가져 와서 "tabVar.delegate = self; 다음에 simalar 컨트롤러 또는 객체의 public function tabBarController에서 이것을 오버라이드 (tabBarController : UITabBarController shouldSelect viewController : UIViewController) -> Bool {.if (viewController == centerViewControllerObject) false를 반환하고 그렇지 않으면 true를 반환} –