0

ユーザーが現在いるレベルを追跡する、UINavigationControllercalledのサブクラスを作成しました。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

4

0 に答える 0