ささっ、続きをやっていきます。

前回はモード切り替えボタンを作ってみましたよね。

今回はそれをちゃんと動作するようにしましょう。

ほんじゃさっそく、やってこうかな。

ContactListViewController.m」を触ります。
セルの挿入/削除がされた時に呼ばれるメソッドtableView commitEditingStyle:があるので、
コメントアウトを外して以下の様にします。
実際、追加するのは赤い部分だけみたいです、

// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[manager removeAtIndex:indexPath.row];

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}




これだけやっていっかい実行したらどうなるでしょう。

実行!
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-1

前は「Edit」ボタンを押しましたが、今回はセルをヒョイっと横にドラッグ
iPhoneでいうと、フリックというやつです。
それをしてみると「Delete」が出てきます。
メールの削除とかする時につかったりしますね(‐^▽^‐)
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-3

で、「Delete」を押したら消えます。
その瞬間をうまい具合に激写できたので、これがその画像です。
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-4

はい、消えました。
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-5



今日はもうちょっとがんばって、セルの移動やってみましょう。
同じく「ContactListViewController.m」を触ってしまいます。
tableView canMoveRowAtIndexPath:
tableView moveRowAtIndexPath:
tableView targetIndexPathForMoveFromRowAtIndexPath:
の三つを実装しますが、最初の二つはコメントアウトされているので、
それを外してちょこっといじります。
一つ目はテーブルのセルについて並べ替えの可否を設定しています。
二つ目はセルが移動するときに呼ばれるメソッドです。
その一つ目と二つ目が以下です。

// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
[manager moveFromIndex:fromIndexPath.row toIndex:toIndexPath.row];
}


// Override to support conditional rearranging of the table view.

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}



次に、三つ目を追加しますが、うーん、これを別に入力しなくても
とりあえず動くんですよねー。(やってみたら)
まぁあとから必要になってくるかもしんないから入れときます。
試せる方は、追加する前とした後の両方を実行してみてください。
状況は変わんないと思うので。

ちなみにこれは移動後のセルの位置を返すメソッドのようです。

適当なところにこのメソッドを実装します。

- (NSIndexPath *)tableView:(UITableView *)tableView
targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath
toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
return proposedDestinationIndexPath;
}




よぉーし、実行!

初期画面。


$無知の状態からiPhoneアプリ開発に挑んでみる-9-5-1


「Edit」ボタンクリック。
おぉ。右に「並べ替えできますマーク」がでてきましたよ!
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-6


並び替え途中の図w
宙に浮く感じが何とも言えないです。
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-7


移動させました。
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-8


「Edit」ボタンクリックで完了なり。
無知の状態からiPhoneアプリ開発に挑んでみる-9-8-9

こんなもんでどないでしょうか??

次は、データが選択されたらそのデータに登録されている別の情報の「住所」をポップアップで表示されるようにしたいと思います。

もうちょっとで完成ですよー^^


クリックして応援してください↓
にほんブログ村 携帯ブログ iPhoneへ
にほんブログ村

 > 次のテーマ テーブルをつくっていこう。
 > テーブルのデータを管理するクラスを作ってみる
 > テーブルビューのコントローラーを作ってみる。
 > ついにテーブルの表示完成!
 > テーブルをいじくる。
 > テーブルを本当にいじくる
 > テーブルを本当に実装を始めるよ。
 > テーブルを改造しましょ。
 > テーブル改造のつづきやけど。。
 > テーブルのセルに電話番号を追加してみる。
 > モード切り替え用ボタンの追加
 > セル(データ)の削除処理と並び替え!(★この記事★)
 > テーブルいじくりも大詰め?