2016-04-27 1 views
0

I "私navigationBarに私は自分のデータベースを同期していますたびにrightButtonを無効にしようとしているメートル。私はnavigationBarをサブクラス化、私は少し上向きにアイテムを移動する必要があるため。スウィフトにUINavigationButtonを使用することはできません2.2

layoutSubviews中に右ボタンを無効にしようとしましたが、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

関連する問題