0

私は、モーダルビューからその親にデータを渡すという非常に単純なことのように思われることにひどく苦労しています。私は数え切れないほどの方法を試しましたが、驚いたことに、オンラインはあまりなく、私がやろうとしていることに一致するものは何もないようです。私はストーリーボードを使用していますが、そこにあるほとんどの例では、続編/ストーリーボードを使用していません。

誰かが私にいくつかのサンプルコードを提供してくれる可能性があるなら、私はそれを非常に感謝します!

カスタムセルを備えた静的テーブルビューコントローラーがあります。セル内にラベルがあります。セルをタップして、テキストビューを含むモーダルビューを表示します。テキストビューにデータを入力し、[保存/完了]ボタンを押してモーダルビューを閉じ、そのデータをセルのUILabelに表示します。

私はそれが非常に単純に聞こえるに違いないことを知っています、そしてそれについてここに多くの質問があります、しかしこれはまさにこれをしません。いくつかのサンプルコードをいただければ幸いです。私は自分のアプリの構築に完全に固執しており、これを取得するまでこれ以上進むことはできません!

4

1 に答える 1

1

NSUserDefaultsを試して、textviewからデータを保存し、ラベル用に読み戻すことができます。

編集:「正しい」方法ではないため(ただし簡単な方法)、NSUserDefaultsを使用したくない場合は、次の方法を試すことができます。

tableViewController.hでNSStringを作成します。

#import <UIKit/UIKit.h>
@interface TestTableViewController : UITableViewController
@property (nonatomic, strong) NSString *string;
@end

textViewを含むviewController.hに、次を追加します。

- (IBAction)doneButton;
@property (weak, nonatomic) IBOutlet UITextView *textView;

viewController.mの場合:

- (IBAction)doneButton {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
TestTableViewController *tvc = (TestTableViewController*)[storyboard instantiateViewControllerWithIdentifier:@"TestTableViewController"];
tvc.string = _textView.text;
[tvc setModalPresentationStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:tvc animated:YES];
// ios6 version:
//[self presentViewController:tvc animated:YES completion:nil];}

次に、tableViewController.mに戻り、セルへの入力データを表示します(ラベルを使用する必要はありません)。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{      
static NSString *CellIdentifier = @"test";
UITableViewCell *cell = [[UITableViewCell alloc] init]; 
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) { 
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; } 
else { 
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
} 
 // Configure the cell...
cell.textLabel.text = _string;

return cell;}

tableViewControllerのストーリーボードのIDインスペクターにストーリーボードIDを設定することを忘れないでください!!

于 2012-11-02T23:39:40.230 に答える