私のデザインには、いくつかの異なるビューから呼び出される「キー」ビューがあります。
Xcode Storyboardを使用して、ユーザーが必要なときにキービューを「プッシュ」してから、ユーザーが正しいビューに戻るように「ポップ」する方法を教えてください。
ボタンは1つのリターンポイントにしかリンクできないようですか?
ありがとうジム
私のデザインには、いくつかの異なるビューから呼び出される「キー」ビューがあります。
Xcode Storyboardを使用して、ユーザーが必要なときにキービューを「プッシュ」してから、ユーザーが正しいビューに戻るように「ポップ」する方法を教えてください。
ボタンは1つのリターンポイントにしかリンクできないようですか?
ありがとうジム
ありがとう、chown - あなたは正しかった。
解決策は、UIViewController サブクラスを作成してからデリゲート プロトコルを使用することです
DelegateClass.h
#import <UIKit/UIKit.h>
@protocol ReturnToMainMenu <NSObject>
@required
- (void) processSuccessful: (BOOL)success;
@end
@interface Recipe : UIViewController {
id <ReturnToMainMenu> delegate;
}
@property (strong) id delegate;
-(IBAction)done:(id)sender;
@end
デリゲートクラス.m
-(IBAction)backToMainMenu:(id)sender {
[[self delegate] processSuccessful:YES];
}
次に、呼び出しクラスでプロトコルを宣言します
@interface FoodGroup : UIViewController <ReturnToMainMenu>
- (void) processSuccessful:(BOOL)success
{
NSLog(@"Process completed");
[self dismissViewControllerAnimated:YES completion:nil];
//[self performSelector:@selector(done:)];
}
ジム、デリゲートとその所有者が相互に参照を保持し、いずれかの適切な割り当て解除を妨げる保持サイクルの潜在的な問題を回避するために、Recipe クラスはそのデリゲートへの弱い参照を持つ必要があります。
ARC 以前は、デリゲートは通常 (割り当て) プロパティでした。assignをweakに変更する以外に、ARCがこれを変更するとは思わない。