誰かが私がここでどこが間違っているのかを理解するのを手伝ってくれることを願っています
TableViewControllerがあり、テーブルビューの内容を保存するために、-(void)viewDidLoadコードを変更して[保存]ボタンを追加しました...
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSave
target:self
action:@selector(insertCustomData)
];
ただし、insertCustomData
関数内では、コントローラーコード内の他の場所と同じようにテーブルビューにアクセスする必要があります。データベースに保存する前にセル値を検証するために、テーブルビューにアクセスする必要があります。ツールバー定義からテーブルビューへの参照を渡す方法を確認できます(そうする必要がある場合)
この段階でテーブルビューセルの値にアクセスする必要があるかどうかさえわかりません(セルデータのNSObjectを作成して、作成したデータコントローラーの検証関数に渡して検証しようとしています)そしてSQLiteデータベースに保存します)
これが些細なことのように思われる場合は申し訳ありませんが、今私はこれに固執しています、そしてどんな助けもいただければ幸いです
ありがとう
[アップデート]
データ入力画面にtableViewを使用しているので、最初は表示するデータがありません。tableViewはtableviewコントローラーの範囲内にありますが、それを行う必要があるため、カスタムセル定義(.xibファイル内で.hおよび.mファイルが関連付けられている)を使用して実行時にセルを作成しています。 。カスタムセル定義は、1つのUILabelと1つのUITextField(データ入力に使用される)です。
フィールドには、入力する必要があるものを示すプレースホルダーがありますが、それ以外の場合は空です。ユーザー入力をキャプチャするために、tableViewを配列またはディクショナリオブジェクトに基づく必要があるかどうかを検討しました
これを書いているクラスには定義があります@interface ViewController : UIViewController<UITableViewDelegate, UITableViewDataSource>
。これはUITableViewController初期テンプレート(またはその呼び出されたもの)から作成されたためです。
以前にデータをキャプチャし、セレクターからsaveメソッドのみを呼び出す必要があると感じましたか?
nil NSStringsを使用してNSArrayを作成し、これをtableViewの各UITextField / Cellに割り当てる必要がありますか?もしそうなら、テキストエントリはこのNSArrayに入りますか?
[解決済み-以下の回答]
私が必要としたのは、標準の.hファイルをこれに変更することでした
@interface CustomViewController : UITableViewController <UITextFieldDelegate> {
IBOutlet UITableView *MyTableView;
}
@property(nonatomic, retain) IBOutlet UITableView *MyTableView;
次に、Interface Builderで、テーブルビューを新しい宣言にCtrlキーを押しながらリンクすることができました。これは最も重要なステップでした。これにより、一般的なtableViewではなく、セルを動的に構築するメインコードを変更して、これを参照できるようになりました。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"EditableCustomCell";
EditableCustomCell *cell = [[self MyTableView] dequeueReusableCellWithIdentifier:CellIdentifier];
synthesize MyTableView
上部にもを追加しました
これによりMyTableView
、作成する必要のある新しいメソッドにアクセスできるようになり、leftBarButtonItemセレクターから簡単にアクセスできるようになりましたinsertCustomData
。
これを手伝ってくれたKimpoyに感謝します!
(注:皮肉なことに、これを完了した後、私が投稿した前の質問を見ると、セグエとテーブルビューに関する以前の問題から学ぶ必要があります。セグエ中にビューコントローラーからtableViewを参照する方法)