私は複数のビューを持つ単純なアプリケーションを開発しています。 私はベースビューと、ベースの後に呼び出される第2ビューを持っています。 ベースビューは、2番目のビューのデリゲートとして機能します。iOS:デリゲートからインスタンス変数の値(プロパティ)を取得
2番目のビューでは、baseView( 'name')のプロパティの値を設定して取得したいと思います。 2番目のビューでは、デリゲートはsecondViewDelegateオブジェクトであるため、 'name'メソッドはありません。
baseView.h(スキップ輸入):
@interface baseView : UIViewController <secondViewDelegate> {
}
@property (retain) NSString *name;
@end
secondView.h(スキップ輸入):
@protocol secondViewDelegate;
@interface secondView : UIViewController{
}
@property (nonatomic,assign) id <secondViewDelegate> delegate;
@end
@protocol secondViewDelegate
- (void) secondViewDidFinish:(secondView *)controller;
@end
ここで通常のアプローチは何ですか? プロトコルのゲッターとセッターを実際に実装する必要がありますか? Like:
@protocol secondViewDelegate
- (void) secondViewDidFinish:(secondView *)controller;
- (NSString *)getName;
- (void)setName:(NSString *)newName;
@end
実際にbaseViewプロパティにアクセスする、または少なくともインスタンスを取得する良い方法はありますか? (それはいい考えですか?)
私はまだiOS開発の新機能がまだ不明です。
うん、それだけです!私たちはそれに就いている間に、代議員の議定書なしでこれを行うことができますか? SecondViewは '[self dismissModalViewControllerAnimated:YES];'を呼び出して、これをbaseViewで呼び出すのではなく、 – jpimentel
@jpimentel:私はこれが可能だとは思わない、プレゼンテーションを行うView Controllerも解雇をしなければならない。しかし、これは良いことです。なぜなら、それは責任をひとつのクラスにまとめているからです。しかし、プロトコルを再設計して、それが署名 'secondView:(secondView *)controller didFinishWithName:(NSString *)name'を持つ単一のメソッドで構成されるようにすることができます。 – herzbube