<commit_before># 关于使用CYLTabBarController未登陆时跳转到登陆界面

**CYLTabBarController**是开源的一款可快速集成的底部栏控制器，只需传入少许参数便可实现功能，并允许个性化自定义。
但是在我需要实现一个功能：**用户未定义时，点击底部“我的”，便需要跳转到登陆界面，方便用户直接登陆。**
因此我觉得理所应当的便实现了**CYLTabBarController**的代理**UITabBarControllerDelegate**，（因为**CYLTabBarController**继承自**UITabBarController**），然后实现代理方法：

``` objectivec 
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if (mineVCtrl) {
        if (viewController == mineVCtrl) {
            [mineVCtrl login];
        }
    }
}
```

但是在运行后发现，无论如何都不会调用该代理方法。最后想来，应该是此类实现机制导致的问题。因此便换一种思路，改作如下代码，顺利完成了功能：
``` objectivec
 - (void) viewWillAppear:(BOOL)animated {
    if(appToken.length) {
    } else {
        BOOL isCurrentOnMine = NO;
        if ([CurrentShowingViewCtrl.navigationController.topViewController isKindOfClass:[MineVCtrl class]]) {
            isCurrentOnMine = YES;
        }
        if (!isCurrentOnMine) {
            [self login];
        }
    }
}
```
<commit_msg>继续修改jekyll代码排版<commit_after>---
layout: post
title: "关于使用CYLTabBarController未登陆时跳转到登陆界面"
description: "处理CYLTabBarController不能调用代理方法的问题"
tags: [CYLTabBarController,界面跳转]
---

**CYLTabBarController**是开源的一款可快速集成的底部栏控制器，只需传入少许参数便可实现功能，并允许个性化自定义。
但是在我需要实现一个功能：**用户未定义时，点击底部“我的”，便需要跳转到登陆界面，方便用户直接登陆。**
因此我觉得理所应当的便实现了**CYLTabBarController**的代理**UITabBarControllerDelegate**，（因为**CYLTabBarController**继承自**UITabBarController**），然后实现代理方法：

``` objectivec 
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if (mineVCtrl) {
        if (viewController == mineVCtrl) {
            [mineVCtrl login];
        }
    }
}
```

但是在运行后发现，无论如何都不会调用该代理方法。最后想来，应该是此类实现机制导致的问题。因此便换一种思路，改作如下代码，顺利完成了功能：

``` objectivec
 - (void) viewWillAppear:(BOOL)animated {
    if(appToken.length) {
    } else {
        BOOL isCurrentOnMine = NO;
        if ([CurrentShowingViewCtrl.navigationController.topViewController isKindOfClass:[MineVCtrl class]]) {
            isCurrentOnMine = YES;
        }
        if (!isCurrentOnMine) {
            [self login];
        }
    }
}
```

{'fraction_non_alphanumeric': 0.12494172494172494, 'fraction_numerical': 0.0, 'mean_word_length': 4.617801047120419, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5531615', 'n_tokens_mistral': 997, 'n_tokens_neox': 1065, 'n_words': 79}