如果我在实现文件中直接写这样的东西:
UINavigationBar *navBar = [[UINavigationBar alloc] init];
在这种情况下,我没有为我的navBar设置任何属性,它的属性/属性/什么都没有。
修改
-(IBAction) loginButtonPressed:(UIButton *)sender
{
UITabBarController *tabBar = [[UITabBarController alloc] init];
FirstScreen *f = [[FirstScreen alloc] initWithNibName:@"FirstScreen" bundle:nil];
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:f];
nav1.title = @"FirstScreen";
SecondScreen *s = [[SecondScreen alloc] initWithNibName:@"SecondScreen" bundle:nil];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:s];
nav2.title = @"SecondScreen";
ThirdScreen *t = [[ThirdScreen alloc] initWithNibName:@"ThirdScreen" bundle:nil];
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:t];
nav3.title = @"ThirdScreen";
NSArray *navControllers = [NSArray arrayWithObjects:f, s, t, nil];
tabBar.viewControllers = navControllers;
}
答案 0 :(得分:3)
对象的属性默认为nil
或0
。但有可能在init
方法中更改了这些值。
有关详情,请随时咨询documentation:
tintColor:默认值为nil。
barStyle:默认值为UIBarStyleDefault。
修改强>
要回答您编辑的问题,tabBar
,nav2
,...是局部变量,而不是属性。
如果您希望它们成为属性,则首先要声明此类属性,然后您必须使用self.tabBar
,...
在.h
文件中:
// ...
@property (strong, nonatomic) UITabBarController *tabBar;
// ...
在.m
文件中:
// ... @synthesize tabBar;
-(IBAction) loginButtonPressed:(UIButton *)sender
{
self.tabBar = [[UITabBarController alloc] init];
// ...
}