2016-04-27 63 views
0

我「米想盡我同步我的數據庫時禁用rightButton在我的導航欄,我子類化的導航欄,因爲我需要一點點向上移動的項目。斯威夫特無法使用UINavigationButton 2.2

現在,我嘗試在layoutSubviews期間禁用正確的Button。我能夠獲得UINavigationButton類型的UIView。一旦嘗試將UIView強制轉換爲UINavigationButton,我會收到錯誤消息:「使用未聲明的類型'UINavigationButton'」。所以我想我只需要導入另一個庫,但是看起來這個類是不可訪問的?或者有人知道要導入什麼?

這是我目前的方法,因爲我可以讀取動態類型並將其轉換爲字符串,我用它來決定我需要移動哪一個。

let navigationBarItems = self.subviews 
    var lableInserted = false 
    var buttons:[UIView] = [] 
    for navigationBarItem in navigationBarItems{ 
     print(String(navigationBarItem.dynamicType)) 
     if String(navigationBarItem.dynamicType) == "_UINavigationBarBackground"{ 
      if syncBarDataSource != nil{ 
       navigationBarItem.frame.origin.y = bounds.origin.y + CGFloat(syncBarDataSource!.barHeight) - CGFloat(maxHeight/2) 
       navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight) 
      } else { 
       navigationBarItem.frame.origin.y = bounds.origin.y - CGFloat(maxHeight/2) 
       navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight) 
      } 
     } 
     if String(navigationBarItem.dynamicType) == "UINavigationButton" || String(navigationBarItem.dynamicType) == "UINavigationItemButtonView"{ 
      buttons.append(navigationBarItem) 
     } 
     if let lable = navigationBarItem as? UILabel{ 
      lableInserted = true 
      lable.text = syncBarDataSource.text 
      if syncBarDataSource!.barHeight > 0{ 
       lable.hidden = false 
      } else { 
       lable.hidden = true 
      } 
     } 
    } 

但是,如果我想投像

navigationBarItem as? UINavigationButton 

我得到的描述錯誤

+0

請分享您的代碼? –

回答

0

你有沒有嘗試過的,而不是UINavigationItem的UIBarButtonItem?

+0

可能遲到了,但我做了,但沒有成功。我只是用那種方式 – TheKringar