我创建了一个UINavigationController
被调用的子类,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)
。
我在我的视图控制器中引用了一个 setter 方法来增加它:
[(CustomNavigationController *)self.navigationController setCurrentLevel:@"Level 5"];
NSLog(@"%@",[(CustomNavigationController *)self.navigationController currentLevel]);
//returns Level 5
但是,当一个新的视图控制器被推入堆栈或从堆栈中弹出时,我在viewDidLoad
方法中的原始行返回(null)
.
ViewController
我的CustomNavigationController
. 这个 View Controller 取决于知道它在哪个级别。我有逻辑根据用户当前在CustomNavigationController
.