0

4 つのビューがあります。

ビュー 1 は、追加ボタンのあるテーブル ビューを示しています。(追加ボタンは表示されません。スクリーン ショットの境界の上にあります)

ビュー 1

ビュー 2 (追加ボタンを押すと表示される) では、ユーザーは追加したいテーブル ビュー セルに関するデータを入力できます。saveボタンが押されると、新しいセルがビューに追加されます。

ビュー 2

ビュー 3 ユーザーがセルを編集したい場合は、セルをタップするだけです。このビューでは、ユーザーは既にテーブルにあるセルを編集することができます。

ビュー 3

しかし、ビュー 1 (テーブル ビュー) とビュー 3 (セル エディター ビュー) の間にビュー 4 を配置すると、属性/ラベルnullは、ユーザー入力が表示されるはずの場所を示します。しかし、ビュー 1 とビュー 3 の間からビュー 4 を削除すると、アプリは再び完璧に動作します。理由はありますか?

ビュー 4

私は単に次の方法でビューを切り替えています:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

View3 * three = (View3 *) [storyboard instantiateViewControllerWithIdentifier:@"view3VC"];

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[tableView deselectRowAtIndexPath:indexPath animated:YES];

three.managedObjectContext = self.context;

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];

three.3entity = entity;

[self presentViewController:four animated:YES completion:nil];

}
4

1 に答える 1

0

ややこしいですが、参考になればと思います。

あなたのコードで:

MyEntityClass *entity = [self.tableArray objectAtIndex:indexPath.row];
three.3entity = entity;

ビュー3を呼び出すと機能するとおっしゃいましたが、エンティティをビュー3に割り当てたためだと思います。

しかし、このように view4 を提示すると、その間に何も割り当てられませんでした。

View4 * four = (View4 *) [storyboard instantiateViewControllerWithIdentifier:@"view4VC"];

[self presentViewController:four animated:YES completion:nil];

現在、view4 はまったく新しい空のビュー コントローラーです。nullラベルに表示されるのは不思議ではありません。

view3 とまったく同じ方法で修正してみてください。

于 2012-11-27T07:20:46.227 に答える