Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从其他视图控制器隐藏的按钮_Ios_Xcode - Fatal编程技术网

Ios 从其他视图控制器隐藏的按钮

Ios 从其他视图控制器隐藏的按钮,ios,xcode,Ios,Xcode,我试图从第二视图控制器隐藏第一视图控制器中的两个按钮。当我尝试将函数从第二视图控制器调用到第一视图控制器时,控制是否正确通过我已通过断点检查,但操作尚未完成。我在第一视图控制器上的代码 -(void)action { if(btnAddFriends.hidden==YES) { btnAddFriends.hidden=NO; } else { btnAddFriends.hidden=YES; } } 1stv

我试图从第二视图控制器隐藏第一视图控制器中的两个按钮。当我尝试将函数从第二视图控制器调用到第一视图控制器时,控制是否正确通过我已通过断点检查,但操作尚未完成。我在第一视图控制器上的代码

-(void)action
{
    if(btnAddFriends.hidden==YES)
    {
        btnAddFriends.hidden=NO;
    }
    else
    {
        btnAddFriends.hidden=YES;
    }
}
1stview *jsq = [[1stview alloc] init];
[jsq action];
第二视图控制器

-(void)action
{
    if(btnAddFriends.hidden==YES)
    {
        btnAddFriends.hidden=NO;
    }
    else
    {
        btnAddFriends.hidden=YES;
    }
}
1stview *jsq = [[1stview alloc] init];
[jsq action];

我猜您正在创建一个新的控制器(alloc/init序列…),而不是使用已经存在的控制器:这也解释了为什么您可以调试它,即使它不工作…

,因为您正在为第一视图控制器创建新对象。 此方法没有为上一个viewController调用,因为该viewController的对象不同,这就是方法不调用的原因 我希望你能理解
它可能会对您有所帮助。

如果您想从2ndview调用1stview方法,您应该引用现有的1stview,而不是创建另一个新的1stview

代码大致如下所示:

1.-在2ndview.h中创建属性:

@property(非原子,强)1stviewClass*1stview

2.-在1stview中,将self分配给步骤1中创建的属性:

2ndview.1stview=self

3.-在第2个视图中,从第1个视图调用所需的方法:

[1stview隐藏按钮]


您还可以创建一个协议,将消息从2ndview发送到1stview

你做这件事的方式不对。您正在创建
1stview
的新实例。您必须在现有的
1stview
实例上调用该操作。您能否清楚地解释一下您可以通过几种方式实现这一点,您能否显示如何从1st view controller显示2nv VC的代码?