我尝试从第二个视图控制器隐藏第一个视图控制器中的两个按钮。虽然我尝试从第二视图控制器调用功能到第一,控制正确传递我有断点检查,但操作没有完成。我在第一个视图控制器上的代码
-(void)action
{
if(btnAddFriends.hidden==YES)
{
btnAddFriends.hidden=NO;
}
else
{
btnAddFriends.hidden=YES;
}
}
第二视图控制器
1stview *jsq = [[1stview alloc] init];
[jsq action];
答案 0 :(得分:2)
我猜你正在创建一个新的控制器(alloc / init序列......),而不是使用现有的控制器:这也解释了为什么你可以调试它,即使它不起作用......
答案 1 :(得分:1)
因为您要为第一个视图控制器创建新对象。 这个方法没有调用以前的viewController,因为viewController的Object是不同的,这就是你的方法不调用的原因 我希望你明白 它可能对你有所帮助。
答案 2 :(得分:1)
如果要从2ndview调用1stview的方法,则应该引用现有的1stview而不是创建另一个新视图。
代码或多或少会像这样:
1.-在2ndview.h中创建一个属性:
@property(nonatomic, strong) 1stviewClass* 1stview;
2.-在1stview中,将self指定给在步骤1中创建的属性:
2ndview.1stview = self;
3.-在2ndview中,从1stview调用您需要的方法:
[1stview hideButtons];
您还可以创建协议以将消息从2ndview发送到1stview。