委任のチュートリアルを広範囲に検索しましたが、機能させることができませんでした。これがストーリーとコードです。DetailViewController には、UITextField と UIButton があります。ボタンを押すと、単純なセクション テーブルを持つ別の PricelistViewController に移動します。そのテーブルの行をタップすると、行のタイトルから最初のビューにテキストが返され、テキスト フィールドに挿入されます。しかし、そうではありません。コードは次のとおりです。
PricelistViewController.h (2 番目のビュー):
@class PricelistViewController;
@protocol PricelistViewControllerDelegate <NSObject>
@required
//- (void)theSaveButtonOnThePriceListWasTapped:(PricelistViewController *)controller didUpdateValue:(NSString *)value;
- (void)theSaveButtonOnThePriceListWasTapped:(NSString *)value;
@end
@interface PricelistViewController : UITableViewController
@property (nonatomic, weak) id <PricelistViewControllerDelegate> delegate;
@property (retain, nonatomic) NSMutableArray * listOfSections;
@end
PricelistViewController.m
@synthesize delegate;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *dictionary = [listOfSections objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"ProductSections"];
NSString *selectedProduct = [array objectAtIndex:indexPath.row];
[self.delegate theSaveButtonOnThePriceListWasTapped:[NSString stringWithFormat:@"%@", selectedProduct]];
[self.navigationController popViewControllerAnimated:YES];
}
これは、DetailViewController.h (テキスト フィールドとボタンを含む最初のビュー)のコードです。
#import "PricelistViewController.h"
@interface DetailViewController : UIViewController <UITextFieldDelegate, PricelistViewControllerDelegate>
DetailViewController.m (これは、フィールド内のテキストを変更しようとしている方法です):
- (void)theSaveButtonOnThePriceListWasTapped:(NSString *)value
{
NSLog(@"Text, sent here: %@", value);
NSLog(@"Text was sent here.");
self.detailDescriptionLabel.text = value;
}
detailDescriptionLabelは、表示するテキストの UITextField です。
誰かがコードをチェックして助けてくれますか? 私は運が悪い2日間、この問題に取り組んでいます!