ユーザーが現在いるレベルを追跡する、UINavigationController
calledのサブクラスを作成しました。CustomNavigationController
currentLevel
タイプ のと呼ばれるプロパティがありますNSString
。
// CustomNavigationController.h
#import <UIKit/UIKit.h>
@interface CustomNavigationController : UINavigationController{
NSString *_currentLevel;
}
@property (nonatomic, retain) NSString *currentLevel;
@end
次のようにして、子ビュー コントローラーからプロパティを取得できます。
[(CustomNavigationController *)self.navigationController currentLevel];
ただし、currentLevel は常に を返します(null)
。
ビューコントローラーでそれをインクリメントするセッターメソッドを参照しました:
[(CustomNavigationController *)self.navigationController setCurrentLevel:@"Level 5"];
NSLog(@"%@",[(CustomNavigationController *)self.navigationController currentLevel]);
//returns Level 5
ただし、新しいView Controllerがスタックにプッシュされるか、スタックからポップされると、viewDidLoad
メソッドの元の行が戻ります(null)
.
my 内に特定のタイプの がViewController
含まれますCustomNavigationController
。このView Controllerは、それがどのレベルにあるかを知ることに依存しています。ユーザーが で現在表示しているレベルに応じて、特定の結果を返すロジックがありますCustomNavigationController
。