Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Objective c 如何为故事板中的每个视图指定名称_Objective C_Ios_Xcode_Storyboard - Fatal编程技术网

Objective c 如何为故事板中的每个视图指定名称

Objective c 如何为故事板中的每个视图指定名称,objective-c,ios,xcode,storyboard,Objective C,Ios,Xcode,Storyboard,因此,我有一个应用程序,我在UI中使用一个具有不同视图的故事板。 在第一个视图中,当我按下按钮时,有一个if语句。它决定屏幕是否必须显示下一个ViewController或其他。我已经知道如何使用.xibs实现这一点,但不知道如何使用故事板 以下是不起作用的代码: .h { IBOutlet UIView *one; IBOutlet UIView *two; } .m -(IBAction)decideNextView:(id)sender{ NSUserDefaults *default

因此,我有一个应用程序,我在UI中使用一个具有不同视图的故事板。 在第一个视图中,当我按下按钮时,有一个if语句。它决定屏幕是否必须显示下一个ViewController或其他。我已经知道如何使用.xibs实现这一点,但不知道如何使用故事板

以下是不起作用的代码:

.h
{
IBOutlet UIView *one;
IBOutlet UIView *two;
}

.m

-(IBAction)decideNextView:(id)sender{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *NextView =[defaults objectForKey:@"TestDone"];
    if ([NextView isEqualToString:@""]) {
        self.view = one;
    }else if ([NextView isEqualToString:@"Done"]) {
        self.view = two;
    }else {
        self.view = one;
    }
}

当我在iPod Touch中运行应用程序并按下执行
iAction
的按钮时,我会看到一个黑屏,但没有任何错误。请帮帮我

在代码中访问视图元素的方法是使用属性检查器中的“标记”项。最好的方法是将其设置为一个数字,然后执行
#define kView1 0
,这样在代码中就不需要记住分配给view1的数字,只需使用常量即可

这里写着
Tag
的地方,您可以为故事板或xib中的每个项目将其设置为任意数字。然后在代码中,您可以这样说:

#define NAME_TAG 0
UIView *nameView = [self.view viewWithTag:NAME_TAG];

在代码中访问视图元素的方法是使用属性检查器中的“标记”项。最好的方法是将其设置为一个数字,然后执行
#define kView1 0
,这样在代码中就不需要记住分配给view1的数字,只需使用常量即可

这里写着
Tag
的地方,您可以为故事板或xib中的每个项目将其设置为任意数字。然后在代码中,您可以这样说:

#define NAME_TAG 0
UIView *nameView = [self.view viewWithTag:NAME_TAG];

对不起,我对Objective-C很陌生,而且还很年轻(16岁),所以,你能再解释一下你的答案吗?只要再多一点,我就能自己在互联网上找到解决方案。谢谢你,迈克。好的,我用了你的代码,首先,谢谢你提供的标签信息,我不知道它是干什么用的!在更改主题时,我使用了以下代码:#define NAME_TAG 0 UIView*nameView=[self.view viewWithTag:NAME_TAG];self.view=nameView;我原以为它会工作,但当我运行应用程序并按下按钮时,会出现黑屏。迈克,有什么想法吗?对不起,我对Objective-C很陌生,而且还很年轻(16岁),所以,你能再解释一下你的答案吗?只要再多一点,我就能自己在互联网上找到解决方案。谢谢你,迈克。好的,我用了你的代码,首先,谢谢你提供的标签信息,我不知道它是干什么用的!在更改主题时,我使用了以下代码:#define NAME_TAG 0 UIView*nameView=[self.view viewWithTag:NAME_TAG];self.view=nameView;我原以为它会工作,但当我运行应用程序并按下按钮时,会出现黑屏。有什么想法吗,迈克?我可能误解了你的意图。是否要根据用户按下的按钮更改视图?就像View0有两个按钮一样,如果单击按钮1,则显示View1;如果单击按钮2,则显示View2?否,则按一个按钮;然后执行if,然后视图将更改视图1或视图2。啊……现在更有意义了。根据您的UI目标,有几种方法可以完成您想做的事情。
view1
view2
是否将占据整个屏幕?如果要控制整个屏幕,最好的方法是为
view1
view2
制作新的视图控制器。然后可以拖出一个序列,然后在条件语句中调用它:
[self-performsguewithidentifier:sender://code>。如果它只是屏幕的一部分,您可以尝试
hidden
属性。Like
self.view1.hidden=YES
当您加载视图,然后在if/else中更改为
NO
时,我可能会误解您的意图。是否要根据用户按下的按钮更改视图?就像View0有两个按钮一样,如果单击按钮1,则显示View1;如果单击按钮2,则显示View2?否,则按一个按钮;然后执行if,然后视图将更改视图1或视图2。啊……现在更有意义了。根据您的UI目标,有几种方法可以完成您想做的事情。
view1
view2
是否将占据整个屏幕?如果要控制整个屏幕,最好的方法是为
view1
view2
制作新的视图控制器。然后可以拖出一个序列,然后在条件语句中调用它:
[self-performsguewithidentifier:sender://code>。如果它只是屏幕的一部分,您可以尝试
hidden
属性。Like
self.view1.hidden=YES加载视图,然后在if/else中更改为
NO