2016-04-26 19 views
-3

私は単純なストップウォッチアプリのツールバーで再生/一時停止と停止ボタンを実装しようとしています。 http://swiftstub.com/722226472のコードを参照してください。奇妙な動作が発生しています。最初は再生ボタンは何もしません。停止ボタンをクリックすると、アイコンが消えて再生/一時停止が切り替わり、正常に動作します。提案? (コメントに基づく)別の、特定の再生/一時停止の問題

var playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: nil, action: Selector("playButtonPressed")) 

var pauseButton = UIBarButtonItem(barButtonSystemItem: 
    UIBarButtonSystemItem.Pause, target: nil, action: Selector("pauseButtonPressed")) 

EDIT:私はこれらの行の両方で自己(ないnilを)する必要があり、最新のSWIFTとXcode

+0

ここで質問するのではなく、レイのものなどのブログに公開されているコードとコードを比較することができます。 –

+1

コードに外部をリンクしないでください - それらのサイトは遠ざかる傾向があります。関連するコードを質問に入れてください。 –

答えて

0

ターゲットを使用していて、あなたは、initにこれらの行を移動する必要があります()は、このように初期化されたvarでselfを使用して初期化できないためです。あなたが開始するために、これらを追加したことがないので

var playButton: UIBarButtonItem! 
var pauseButton: UIBarButtonItem! 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
    playButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: Selector("playButtonPressed")) 
    pauseButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: Selector("pauseButtonPressed")) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let toolBarItems = [playButton] 
    toolbar.setItems(toolBarItems, animated: false) 
} 

、私はあなただけで何にフックアップされていない、あなたのストーリーボード内の別のボタンを持っている疑いがあります。その後、最初の呼び出しでそれらを置き換えて停止します。

+0

私は、再生と停止の2つのバーボタンアイテムしか持っていません。私がターゲットで自分自身にnilを置き換えた場合は、次のようになります: 'NSObject - >() - > ViewController'の値を期待される引数型 'AnyObject?'に変換できません。 –

+0

- 自己にアクセスできるようにinit()への初期化。 –

+0

ありがとう、ルー。私はそれらをinit()に移動しようとしましたが、それを正しく行う方法を理解できませんでした。 - 申し訳ありませんが、私はスイフトを学ぶ3日目です。 –

関連する問題