UITableViewの編集モードが実装できない

このQ&Aのポイント
  • Objective-Cを用いてiPhoneアプリのプログラミングを勉強していますが、UITableViewで編集モードを実装したいと思い、コードを記述しましたがエラーが出て実行できません。
  • コードにはARCエラーがありましたが、対策をしたためコード上のエラー表示は無くなりました。
  • アドバイスをお願いします。
回答を見る
  • ベストアンサー

UITableViewの編集モードが実装できない

Objective-Cを用いてiPhoneアプリのプログラミングを勉強しています。 http://konton.ninpou.jp/program/cocoa/userinterface/UITableView/UITableView2.html UITableViewで編集モードを実装したいと思い、こちらのサイトを参考にコードを記述したのですがsignal:SIGABRTが出てしまい、実行できません。 一応build succeedとは出るのですが、iOSシミュレータの最初の画面が表示される前にエラーが出てしまうという状況です。 以下にコードを晒します。 アドバイスお願いしますm(_ _)m ■ヘッダファイル #import <UIKit/UIKit.h> @interface ViewController : UITableViewController { NSMutableArray *stringArray; UITableView *myTableView; } @property (nonatomic, retain) IBOutlet UITableView *myTableView; @property (nonatomic, retain) NSMutableArray *stringArray; @end ■実装ファイル http://www.dotup.org/uploda/www.dotup.org5336157.txt コードが古いようで、ARCエラーが出ましたが、以下のサイトを参考に対策をしたところ、コード上のエラー表示は無くなりました。 http://d.hatena.ne.jp/mTsuruta/20111107/1320615543

質問者が選んだベストアンサー

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

テーブルにセルを実装する、UITableViewDatasourceのメソッド「- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath」が、実装されていないようですね。

ifonesapp
質問者

お礼

回答ありがとうございます! とても初歩的な事でした。

関連するQ&A

  • objective-c 画面遷移について

    プログラミングに関して素人です。 UIViewControllerからPushコードを使って別のUIViewに画面遷移したいのですが 遷移先にTableViewを2つ並べております。 画面遷移する際のコードはどのように記述したらいいのでしょうか? 詳しいかたお力お貸しいただければと思います。 ViewController.m - (IBAction)NewsPage:(UIButton *)sender { //こちらの記述方法が不明 } TViewController.h // XibファイルとUIViewの紐づけ。 @property (weak, nonatomic) IBOutlet UITableView *leftTableView; @property (weak, nonatomic) IBOutlet UITableView *rightTableView; - (IBAction)TopButton:(UIButton *)sender; 根本的になにか違えばご指摘お願いします。

  • Xcodeでカスタムセルを実装できない

    ObjectiveCを用いてiPhoneアプリ開発の勉強をしています。 http://ameblo.jp/iichin0708/entry-11340165016.html UITableViewに表示するセルをカスタムセルにしたく、上記のサイトを参考にしているのですが上手くいきません。 まずSingleViewControllerを選択し、UITableViewとTableViewCellをstoryboardのViewController上にドラッグアンドドロップし、UITableViewとViewControllerの実行ファイルをOutlet接続しました。 以降は上記サイトを参考にプログラムしました。(xibのクラス名と、ヘッダ・実装ファイル名はtestCellという名前にしました。) xibの実装ファイルに最初から書かれていたコードは残したままにしました。(コメントアウトしても結果は変わりませんでした。) これで実行したところ、unsupported Configuration prototype table cells must have reuse identifiers というエラーが出てシミュレータが起動しませんでした。 なので、storyboardのセルを選択し、Identifier inspector を開き、CustmCellをtestCellに、IdentityをCellにしたらシミュレータが起動できましたが、何も項目は表示されませんでした。 カスタムセルのサイズを縦に極端に大きくしても変化が無かったのでうまく接続できていないように思います。 以下にコードを晒します。 ■testCell.h http://www.dotup.org/uploda/www.dotup.org4973490.txt ■testCell.m http://www.dotup.org/uploda/www.dotup.org4973493.txt ■ViewController.h 特に編集していません。 ■ViewController.m http://www.dotup.org/uploda/www.dotup.org4973496.txt よろしくおねがいましう。

  • IBOutlet が認識されない

    Xcode3.2.5 で久しぶりにiPhoneアプリ作成の再勉強をしていますが、 IBOutlet が Interface Builder で認識しません。 手順### 新規プロジェクトで Window-based Application を選択して HelloWorldプロジェクトを作成。 ↓ HelloWorldAppDelegate.h に以下のように記述 #import <UIKit/UIKit.h> @interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; IBOutlet UILabel *label; //←追加 } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UILabel *label; //←追加 @end 保存して、MainWindow.xib をクリックし Interface Builder を起動しましたが、 Hello World App Delegate をみても IBOutlet の label が ちゃんと Inspector に表示されません。 以前、前のバージョンのXcodeで作成したものをみてみると ちゃんと反映されるのですが新バージョンのXcodeだと具合が違うようです。 ググってみると http://iphone-ipodtouch-development.blogspot.com/2010/10/inspector.html が一番この例に詳しいようですがうまくいきません。 この解決法の説明をよろしくお願い致します。

  • Obj-CでViewコントローラのラベルに表示する

    Objective-Cであるクラスから、特定のViewControllerのもつLabel要素へテキストを表示したく、色々試してみたのですが、うまく動作しませんでした。 詳しい方、ぜひアドバイスお願いします。 □やりたいこと クラス側から、ViewControllerの持つ要素を操作したい □テストで使用したコード test_buttonをクリックすると、lbl_mesへ文字列を表示する ----------------- ■classTest.h #import "helloViewController.h" ----------------- ■classTest.m #import "classTest.h" - (void) makeStr { helloViewController *hv = [[helloViewController alloc] init]; hv->lbl_mes.text = @"HELLO WORLD"; [hv release]; } ----------------- ■helloViewController.h #import "classTest.h" @interface helloViewController : UIViewController { @public IBOutlet UILabel* lbl_mes; } @property(nonatomic,retain) IBOutlet UILabel* lbl_mes; -(IBAction) test_button; ----------------- ■helloViewController.m #import "helloViewController.h" -(IBAction) test_button{ classTest *clst = [[classTest alloc] init]; [clst makeStr]; [clst release]; } よろしくお願いします。

  • Objective-Cのエラーコードの意味

    タイトルの通りです。 エラー部分は最下部にあります。 ------------------------------------------------------------------------------------------------- // // ViewController.m // Kadai // // Created by on 2014/08/10. // Copyright (c) 2014年 saikoro. All rights reserved. // #import "ViewController.h" @interface ViewController () <UIAlertViewDelegate> @property (weak, nonatomic) IBOutlet UITextField *tfMyouji; @property (weak, nonatomic) IBOutlet UITextField *tfName; @property (weak, nonatomic) IBOutlet UILabel *Aisatsu; @end @implementation ViewController // 画面タッチ時 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // キーボード非表示 [self.tfMyouji resignFirstResponder]; [self.tfName resignFirstResponder]; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } // [挨拶する]ボタン押下 - (IBAction)introduce:(id)sender { UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"確認" message:@"挨拶しますか?" delegate:self cancelButtonTitle:@"キャンセル" otherButtonTitles:@"はい", nil]; // 表示 [av show]; } // AlertViewボタン押下 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"再確認" message:@"本当に挨拶しますか?" delegate:nil cancelButtonTitle:@"やっぱりやめときます" otherButtonTitles:@"早く!", nil]; [av show]; } // AlertViewボタンさらに押下 + (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ // 入力された名前の保持 NSString *str = self.tfMyouji.text; ←ここでエラーが出ます。なぜか「tfMyouji」が                    予測で出てきません } @end ------------------------------------------------------------------------------------------------- どなたかエラーの理由をご教授頂けないでしょうか。 以上、何卒宜しくお願い致します。

  • 画面遷移したVCから戻る時に元のVCにデータを渡す

    ObjectiveCを用いてiPhoneアプリ製作の勉強をしています。 ViewController上に設置したボタンで接続したTableViewControllerのセルをタッチしたとき、 そのセルの情報を元のViewControllerのラベルに表示するという処理を組みたいのですが、うまく行きません。 こちらのサイトを参考にしています。 http://kikuchy.hatenablog.com/entry/2013/11/04/Segue_%E3%81%A7%E7%94%BB%E9%9D%A2%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E6%B8%A1%E3%81%97%E3%81%A6%E3%81%BF TableViewControllerのセルがタッチされた時、prepareForSegueメソッドの中のLogが表示されないので、このメソッドが実行されていないように思います。 以下にコードを晒します。 ViewController.m上でproperty宣言されているUILabel *rowNumはストーリーボード上で ViewControllerと接続されています。 ■ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property NSInteger rowNumber; @end ■ViewController.m http://www.dotup.org/uploda/www.dotup.org4992395.txt ■selectTableViewController.h http://www.dotup.org/uploda/www.dotup.org4992392.txt ■selectTableViewController.m http://www.dotup.org/uploda/www.dotup.org4992394.txt よろしくお願いします。

  • Objective-C,viewが動作しない

    IBを使わないカメラアプリを作っています。 AppDelegate.m内のapplication didFinishLaunchingメソッド内で生成したwindowとviewはコンパイルして表示確認できたのですが、viewControllerで書いたUIImagePickerViewControllerのviewが出てきません。 そもそもviewController.mのloadViewメソッドやviewDidLoadメソッドが動いていません。(メソッド内にNSLogを書いてコンパイルしてもログに出ない) viewController.h #import <UIKit/UIKit.h> @interface CameraViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate> { @private UIImagePickerController* _imagePicker; } @property(nonatomic,retain) UIImagePickerController *imagePicker; @end viewController.m #import "CameraViewController.h" @implementation CameraViewController @synthesize imagePicker=_imagePicker; - (void)dealloc { [super dealloc]; } #pragma mark - View lifecycle - (void)loadView { [super loadView]; //UIImagePickerControllerの作成 if(![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ return; } UIImagePickerController* imagePicker; imagePicker = [[UIImagePickerController alloc] init]; [imagePicker autorelease]; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.allowsEditing=NO; imagePicker.delegate = self; //imagePickerのviewを最上部に [self presentModalViewController:imagePicker animated:YES]; //シャッターを切る [self.imagePicker takePicture]; } @end viewControllerが機能しない原因としてそういった可能性が考えられるのでしょうか? あれこれ調べてみましたが煮詰まっています。よろしくお願いします

  • Xcode TableView~詳細へ遷移について

    初めまして。 現在Xcodeにてアプリ開発中の初心者です。 現在、Tableviewのリストをタップしたら詳細なページへ遷移する、というものを作っております。 以下のサイトを参考にし、作成致しました。 http://www.raywenderlich.com/ja/34037/table-view%E3%81%ABsearch%E6%A9%9F%E8%83%BD%E3%82%92%E5%8A%A0%E3%81%88%E3%81%BE%E3%81%97%E3%82%87%E3%81%86 上記サイトで遷移するところまでは出来ましたものの、 詳細な情報をどう記載していいのかよくわからず、色々サイトなどを見てやってみたのですが実現出来ておりません。 こちらのyoutube動画を見ながら https://www.youtube.com/watch?v=lMVNoDEkrxk DetailViewController.hとDetailViewController.mを以下のように追加してみたのですが 駄目でした。 <DetailViewController.h> #import <UIKit/UIKit.h> @interface DetailViewController : UIViewController { IBOutlet UILabel *Built; IBOutlet UILabel *Height; IBOutlet UILabel *Type; IBOutlet UILabel *Visitation; } @property (strong, nonatomic) IBOutlet UILabel *candyArray; @property (strong, nonatomic) IBOutlet UILabel *filteredCandyArray; @property (strong, nonatomic) IBOutlet UIImageView *candySearchBar; @property (strong, nonatomic) NSArray *DetailModal; @end <DetailViewController.m> #import "DetailViewController.h" @interface DetailViewController () @end @implementation DetailViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. _candyArray.text = _DetailModal[0]; _filteredCandyArray.text = _DetailModal[1]; _candySearchBar.image = [UIImage imageNamed:_DetailModal[2]]; self.navigationItem.title = _DetailModal[0]; if ([_candyArray.text isEqualToString:@"chocolate bar"]) { Built.text = @"test1"; Height.text = @"test2"; Type.text = @"test3"; Visitation.text = @"test4"; } } @end どなたかご存知の方、お詳しい方教えて頂けませんでしょうか。 質問に慣れておらず、また知識が浅く質問方法や情報など不足しておりませんでしたら ご指摘頂けますと幸いです。

  • iPhoneアプリのプログラミングに関する質問です

    iOSでiPhoneアプリの開発をしています。 今までに5本のアプリをアップストアにアップしているのですが、プログラムに関してアマチュアなので、サンプルを参考にしながら、稚拙なプログラム(配列などは使っていません。)を作っています。 6本目として作ったアプリを動かしてみたところ、1回目は普通に動くのですが、シミュレーターの下にある□ボタンで終了させた後に、再度起動させて動かすと、UIImageを呼び出すところで、フリーズしたり落ちたりします。 アップルのサンプルコードやチュートリアルなども見ているのですが、残念ながら私の力では、それらのチュートリアルで今回の問題を解決することは出来ませんでした。 下にあるのが、コードの一部ですが、[hana setImage:hana1]; のところで、Thread 1:Program received signal: "EXC_BAD_ACCESS".というエラーが出ます。メモリへの二重のアクセスが原因なのかもしれないと考えて、メモリを解放するために @property (nonatomic, retain) UIImage * hana0; @property (nonatomic, retain) UIImage * hana1; と @synthesize hana0; @synthesize hana1; と [hana0 release]; [hana1 release]; を追加しましたが、効果はありませんでした。 自分自身で何が問題か分かっていないために説明が間違っている可能性もあるので、この質問だけで解決していただくことは難しいと思いますが、どのような方向で考えるとよいのかだけでも教えていただくと助かります。 よろしくお願いします。 hのファイルです。 @interface MondaiViewController : UIViewController { UIImage * hana0; UIImage * hana1; IBOutlet UIImageView *hana; } @property (nonatomic, retain) UIImage * hana0; @property (nonatomic, retain) UIImage * hana1; -(IBAction) kaisi:(id)sender; -(IBAction) marutuke:(id)sender; @end mファイルです。 @implementation MondaiViewController @synthesize hana0; @synthesize hana1; -(IBAction) marutuke:(id)sender{ if (jidai == 0 && syoukou == 0 && tugi == 0) { int miss = 0; int kai = [[kaitou text] intValue]; if (kai == 345) { [kaitou setTextColor:[UIColor blackColor]]; [hana setImage:hana1]; //Thread 1:Program received signal: "EXC_BAD_ACCESS". } else { [kaitou setTextColor:[UIColor redColor]]; [hana setImage:hana0]; tugi = tugi - 1; miss = 1; } } - (void)dealloc { [hana0 release]; [hana1 release]; [super dealloc]; }

  • objective-c 初心者です

    はじめまして。iphone アプリ開発を始めようと思い、まずは簡単なアプリからと人のまねをして時計アプリを書いております。http://www.slideshare.net/takuya0429/121216の43枚目のスライドを丸写しにしました。しかし、iPhoneシミュレーター(iphone 6.1)でシミュレーションしても真っ黒な画面が移されるだけで思うように機能しません。 なぜ機能しないかを考えられる範囲でご教授願いたい次第です。 環境はmacbook air 13inch にてXcode 4.6.3を使用しております。 以下に作成したコードを記載いたします。 // // ViewController.h // watch // // Created by motoyama kaoru on 2013/08/15. // Copyright (c) 2013年 motoyama kaoru. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *timeLabel; @end // // ViewController.m // watch // // Created by motoyama kaoru on 2013/08/15. // Copyright (c) 2013年 motoyama kaoru. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(update) userInfo:nil repeats:YES]; } -(void)update{ NSDate *now = [NSDate date]; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"HH:mm:ss"]; self.timeLabel.text = [df stringFromDate:now]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

専門家に質問してみよう