无法隐藏以编程方式创建的UIButton?
LoginController
尝试简单登录尝试 - 如果其成功,则调用setEmail
,leftcontroller
。无法隐藏以编程方式创建的UIButton?
所有我需要做的,当setEmail
被调用是隐藏btnLogin
并显示buttonUser
并没有什么我尝试工作。 NSLog
被调用,EventsController
加载使setEmail
正在工作 - 它不会隐藏和显示按钮。
leftcontroller.h
:
@interface LeftController : UIViewController <UIApplicationDelegate>
{
IBOutlet UIButton *btnLogin;
IBOutlet UIButton *buttonUser;
NSString *setEmail;
}
@property (nonatomic,strong) IBOutlet UIButton *btnLogin;
@property (nonatomic,strong) IBOutlet UIButton *buttonUser;
@property(nonatomic,strong) UITableView *tableView;
@property(nonatomic) NSString *Email;
//-(void) setEmail : (NSString *) Email;
@end
leftcontroller.m
:
- (void) setEmail : (NSString *) Email{
[buttonUser setTitle:Email forState:UIControlStateNormal];
//btnLogin.hidden = YES;
//buttonUser.hidden = NO;
[btnLogin setHidden:YES];
[buttonUser setHidden:NO];
NSLog(@"Set Email Called");
NSLog(@"email: %@", Email);
DDMenuController *menuController = (DDMenuController*)((AppDelegate*)[[UIApplication sharedApplication] delegate]).menuController;
EventsViewController *controller = [[EventsViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
[menuController setRootController:navController animated:YES];
}
-(void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = HEXCOLOR(0x000000);
btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnLogin.frame = CGRectMake(0, 0, 180.f, 48);
[btnLogin setTitle:@"Login" forState:UIControlStateNormal];
[btnLogin addTarget:self action:@selector(LoginPressed)
forControlEvents:UIControlEventTouchUpInside];
btnLogin.tag=1;
btnLogin.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[btnLogin setTitleColor: [UIColor whiteColor] forState:UIControlStateNormal];
btnLogin.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
UIImage *btnImage = [UIImage imageNamed:@"nav_top.png"];
[btnLogin setBackgroundImage:btnImage forState:UIControlStateNormal];
[self.view addSubview:btnLogin];
buttonUser = [UIButton buttonWithType:UIButtonTypeRoundedRect];
buttonUser.frame = CGRectMake(0, 0, 180.f, 48);
//[buttonUser setTitle:_Email forState:UIControlStateNormal];
[buttonUser addTarget:self action:@selector(EmailPressed)
forControlEvents:UIControlEventTouchUpInside];
buttonUser.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
[buttonUser setTitleColor: [UIColor whiteColor] forState:UIControlStateNormal];
buttonUser.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
UIImage *btnImage1 = [UIImage imageNamed:@"nav_top.png"];
[buttonUser setBackgroundImage:btnImage1 forState:UIControlStateNormal];
[self.view addSubview:buttonUser];
buttonUser.hidden = YES;
}
此行是犯罪嫌疑人:
btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// ...
[self.view addSubview:btnLogin];
如果要创建btnLogin
并将其添加到self.view
自己,在代码中,然后为什么是这样的n outlet?
@property (nonatomic,strong) IBOutlet UIButton *btnLogin;
一个出口的东西,已经存在,并且在你的笔尖是实例。因此,在我看来,你可能有两个对象,其中一个对象将你的引用擦除掉。而另一个按钮也一样。
你没有设置你的财产,替换:
btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];
有:
self.btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];
,并定义像你的财产:
@property (nonatomic,strong) UIButton *btnLogin;
执行相同的buttonUser
。
如果按钮是在代码中创建的,为什么要将该属性标记为IBOutlet? – rmaddy 2013-04-29 16:59:33
我的不好意思是要指出它不应该被标记为出口,但忘记删除,感谢捕捉。 – 2013-04-30 15:57:01
设置你的按钮的hidden
后,您立即说
[menuController setRootController:navController animated:YES];}
这表明,你正在改变接口。但是如果你正在改变界面,你真的可以告诉你的按钮是否改变了吗?我不知道你在这里做什么,但也许你的按钮不再在界面中。也许你在界面上看到的是不同的按钮组。
左侧控制器(这是按钮所在的位置)是https://github.com/devindoty/DDMenuController的一部分 - 导航栏按钮会拉出菜单,单击登录(然后登录)并加载事件控制器 - 左侧控制器永远不会被卸载 - 它只是隐藏了 – lsiunsuex 2013-04-29 17:14:01
这些按钮位于左侧控制器中。如果左侧控制器隐藏,你怎么知道按钮没有改变?你不能再看到它们了。 – matt 2013-04-29 17:15:31
认为facebook ios应用程序 - 菜单拉出导航栏按钮 - 所以当我登录后,我再次击中该导航栏按钮,登录按钮hasen't变得隐藏 – lsiunsuex 2013-04-29 17:18:57
按钮是在XIB中定义的插座还是代码中的变量或两者兼而有之? – Wain 2013-04-29 16:49:53
no xib - 我不认为我需要IBOutlet - 只是尝试不同的事情,试图让它工作 – lsiunsuex 2013-04-29 17:03:42
http://stackoverflow.com/questions/4498400/cant-programmatically-hide-uibutton-created-with -ib?rq = 1 – matt 2013-04-29 17:13:32