我不知道如何从不同的View Controller
运行代码。
我创建了一个新项目,希望能尽快完成它,这是我的功课,必须在今晚之前完成。
在我的项目中,我有两个View Controller
的名字。 viewcontroller1
和viewcontroller2
,并将它们分配给两个不同的自定义类。
屏幕上显示Viewcontroller1
,它有两个UIButtons
,一个用于运行代码,另一个用于推送至viewcontroller2
。
当用户单击第一个UIButton
时,我希望该按钮运行以下代码,并在UILabel
的viewcontroller2
上显示结果。
该代码使用arc4random
创建随机数,然后在UILabel
中显示随机词。该代码适用于基于单页的应用程序,并在实现中使用。
所以基本上我想要的是,当我单击第一个UIButton
时,我想在UILabel
中的viewcontroller2
上显示随机创建的单词。
-(IBAction)button; {
int random_num;
random_num = (arc4random() % 5 - 1) + 1;
if (random_num == 1) {
label.text = @"hello1";
}
else if (random_num == 2) {
label.text = @"hello2";
}
else if (random_num == 3) {
label.text = @"hello3";
}
else if (random_num == 4) {
label.text = @"hello4";
}
}
timelabel
是我的UILabel
上的viewcontroller2
。能否在回答中详细说明。我是一个初学者,可能不会立即掌握这些概念。
例
用户打开应用
显示了Viewcontroller1
用户在
button 1
中按label
运行viewcontroller2
的代码用户按
button 2
转到viewcontroller
Viewcontroller2
出现并且按钮上的标签已更改我知道这不是一件难事,但我做不到。
对于那些之前回答过我的人以及那些将会回答我的人,非常感谢。
谢谢。
最佳答案
因此,首先,我想说清楚一点,viewcontroller1不可能出现在屏幕上。实际上,viewcontroller1的视图出现在屏幕上。您只能在屏幕上看到视图,并且视图属于/由视图控制器控制。
为了正确回答您的问题,我们需要知道,您使用什么来更改视图?您是否使用导航控制器,tabbarcontroller或其他工具?
通常,作为表示文本的UI元素的标签是在viewcontroller的viewDidLoad方法中初始化的。因此,在此之前设置文本无效。
如果您从viewcontroller1中引用了viewcontroller2,则可以创建一个属性来保存文本并在按下按钮后进行设置。并且viewcontroller2可以在将视图加载到标签上之后显示文本。因此,您在viewcontroller1中的代码如下所示
-(IBAction)button; {
ViewController2 *viewController2 = [[ViewController2 alloc] init];
viewcontroller2.textToShow = ......;
//show view of your viewcontroller2
// e.g.
[self.navigationController pushViewController:viewcontroller2 animated:YES];
}
还有你的viewcontroller2头文件(ViewController2.h)
@property (nonatomic, strong) NSString *testToShow;
您viewController2实现文件(Viewcontroller2.m)
@synthesize textToShow;
-(void)viewDidLoad
{
UILabel *label = UILabel aloc initWithFrame:CGRectMake(0, 0, 200, 200);
[self.view addSubview:label];
label.text = self.textToShow;
}