Определите, на какой вкладке мы используем CAPSPageMenu в цели c - PullRequest
0 голосов
/ 22 февраля 2019

Я использую CAPSPageMenu с 2 вкладками.Теперь на правой панели есть кнопка.Всякий раз, когда я нажимаю, у меня есть вид с одной кнопкой под названием sayHello.Теперь, когда я нажимаю эту кнопку, мне нужно знать, на какой вкладке я находился. Эта кнопка панели предназначена для обеих вкладок. Но как я могу проверить, какая вкладка была у меня, когда я нажимаю на этот код sayHello.

:

В моем homevc я добавил две вкладки.

VC1, VC2 ..

И я попробовал в viewwillAppear добавить на bool в nsuserdefault и попыталсявыборки.Но этот bool всегда приходит как TRUE.Какой бы вкладкой я ни был - все же значения bool, которые я представляю как true. Вот код:

In vc1

-(void)viewWillAppear:(BOOL)animated {
    userDefault = [NSUserDefaults standardUserDefaults];
    [userDefault setBool:TRUE forKey:@"fromVC1"]; // Tried true, YES also
    NSLog(@"from vc1");
}

In 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];
    }
}

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Я вполне согласен с @ Anbu.Karthik.Реализация Karthik

Но я хотел бы ответить, что вы всегда получаете значение TRUE, когда появляется userDefault

Поскольку вы не предоставляете полный контекст метода для чтения значения UserDefault.Так что я не знаю, связано ли это с жизненным циклом вызова, но если вы попытаетесь написать методы userDefault для viewDidAppear: (BOOL) анимированные, я уверен, что вы получите ожидаемые значения.

Схемакод:

- (void)viewDidAppear:(BOOL)animated {

    BOOL value;

    NSUserDefaults* userDefault = [NSUserDefaults standardUserDefaults];
    value = [userDefault objectForKey:@"fromVC1"];

}

Надеюсь, я смогу вам помочь

0 голосов
/ 22 февраля 2019

если вы согласны с делегатом 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

...