是否可以从嵌入式UITableViewController

时间:2016-02-01 08:43:02

标签: ios objective-c storyboard

在嵌入式视图方面,我有点困惑。我在故事板中创建了以下结构:

-UITabBarViewController
   -UINavigationViewController
      -UITableViewController (MyTableViewController)

所以对于我的问题,是否可以在我的自定义UITableViewController(MyTableViewController)中设置标签栏项属性,例如标题字体?

我在MyTableViewController中尝试了以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    // Set tab bar item title
    [self setTitle:@"TEST"]; // This works, it sets the title of the tab bar item

    // This does not work
    [self.tabBarController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor yellowColor] }
                                         forState:UIControlStateNormal];
    [self.tabBarController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
                                         forState:UIControlStateSelected];

    // This does not work
    [[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor yellowColor] }
                                         forState:UIControlStateNormal];
    [[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
                                         forState:UIControlStateSelected];

} // viewDidLoad

我知道我可以创建一个自定义MyTabBarViewController并将代码放在那里。但是,没有必要为此创建一个新课程会很好。

一般问题,嵌入式视图在此示例中如何工作?

1 个答案:

答案 0 :(得分:1)

我在我的一个项目中这样做了。试试这个:

[self.navigationController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor yellowColor] }
                                     forState:UIControlStateNormal];

[self.navigationController.tabBarItem setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] }
                                     forState:UIControlStateSelected];

如果它不适合你,请告诉我..

希望这有帮助!