Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 528 - Swiftでデザインパターン: Memento(メメント) 5

メメントの勉強を続けています。

www.raywenderlich.com

アーカイブ機能は少し複雑で理解するのに時間がかかっていますが何度か復習をします。

取りあえず、先に進んでこのチュートリアルを終了させます。

「削除」ボタンを加えて、アルバムデータを削除した場合の挙動は? 間違えて消去したときにundoさせる機能を加えるには? なんてことを考えていきます。

undo機能を実現するために、一時的に削除データを保持するプロパティをViewContorllerに用意します。

var undoStack: [(Album, Int)] = []

そしてviewDidLoad()メソッドのreloadScroller()の下に次のコードを加えます。これはコードを使ってUIコンポーネントを追加する方法です。Xcodeを使えばビジュアルで設置できますが、以下のようにコーディングを使って組み込むこともできます。古いタイプのプログラマーはコーディングで組み込むことが多いのかもしれませんね。

let undoButton = UIBarButtonItem(barButtonSystemItem: .Undo, 
                      target: self, action:"undoAction")
undoButton.enabled = false;
let space = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, 
                               target:nil, action:nil)
let trashButton = UIBarButtonItem(barButtonSystemItem: .Trash, 
                         target:self, action:"deleteAlbum")
let toolbarButtonItems = [undoButton, space, trashButton]
toolbar.setItems(toolbarButtonItems, animated: true)
        
NSNotificationCenter.defaultCenter().addObserver(self, 
               selector: "saveCurrentState", 
           name: UIApplicationDidEnterBackgroundNotification, 
                                        object: nil)

この段階でランすると次のようにツールバーにボタンがあります。
f:id:yataiblue:20151221163600j:plain
まだボタンを押したらクラッシュします。メソッドを加えてないからです。

年末の超多忙モードなのでプログラミングの勉強ができません(^_^;)

今日はこれだけ。