我正在使用带有2个标签的CAPSPageMenu。现在在右栏按钮上有一个按钮。每当我单击该按钮时,我都会看到一个名为sayHello
的按钮。现在,当我单击该按钮时,我需要知道我所在的选项卡。那个条形按钮同时用于两个选项卡。但是,当我单击该sayHello
时,如何检查我是哪个选项卡。
代码:
在我的homevc
中,我添加了两个标签。
VC1, VC2
..
然后我尝试在nsuserdefault
中的bool上添加的viewwillAppear中尝试获取。但是,布尔总是以TRUE
的形式出现。我是哪个标签-仍然是我的真实布尔值。这里是代码:
在vc1
-(void)viewWillAppear:(BOOL)animated {
userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setBool:TRUE forKey:@"fromVC1"]; // Tried true, YES also
NSLog(@"from vc1");
}
在vc2
-(void)viewWillAppear:(BOOL)animated {
userDefault = [NSUserDefaults standardUserDefaults];
[userDefault FALSE forKey:@"fromVC1"]; // Tried false, No also
NSLog(@"from vc1");
}
我正在检查:
BOOL Val;
userDefault = [NSUserDefaults standardUserDefaults];
Val = [userDefault objectForKey:@"fromVC1"];
if (Val) {
NSLog(@"from VC1");
}else {
NSLog(@"from VC2");
}
但总是以True
的形式出现。任何想法如何获得?我以前是哪个标签。当我按下按钮sayHello
时。
- (void)didTapGoToLeft {
NSInteger currentIndex = self.pageMenu.currentPageIndex;
if (currentIndex > 0) {
[_pageMenu moveToPage:currentIndex - 1];
}
}
//
- (void)didTapGoToRight {
NSInteger currentIndex = self.pageMenu.currentPageIndex;
if (currentIndex < self.pageMenu.controllerArray.count) {
[self.pageMenu moveToPage:currentIndex + 1];
}
}
答案 0 :(得分:1)
如果您符合CAPSPageMenu
的委托,则会获得带有以下两种委托方法的标签。
// Optional delegate
- (void)willMoveToPage:(UIViewController *)controller index:(NSInteger)index {}
- (void)didMoveToPage:(UIViewController *)controller index:(NSInteger)index {}
例如
最初,您需要告诉编译器您的类实现了该协议:
@interface ViewController : UIViewController<CAPSPageMenuDelegate>
@property (nonatomic) CAPSPageMenu *pagemenu;
此后,您需要与代表保持一致
_pageMenu.delegate = self;
最后根据需要访问该委托。
(void)didMoveToPage:(UIViewController *)controller index:(NSInteger)index {
NSLog(@"controller: %@", controller);
NSLog(@"tabbed Index : %d", index);
}
有关逐步介绍:https://github.com/PageMenu/PageMenu/blob/master/README.md
答案 1 :(得分:0)
我完全同意@ Anbu.Karthik。 Karthik的实现
但是我想回答,当userDefault出现时,您总是得到TRUE值
因为没有提供完整的方法上下文来读取userDefault值。 因此,我不知道这是否是由于调用生命周期造成的,但是如果您尝试编写userDefault方法以将viewDidAppear:(BOOL)动画化,我相信您会获得期望的值。
示意图代码:
- (void)viewDidAppear:(BOOL)animated {
BOOL value;
NSUserDefaults* userDefault = [NSUserDefaults standardUserDefaults];
value = [userDefault objectForKey:@"fromVC1"];
}
希望我能帮助您