所以我有一个小项目,当用户点击按钮时,用户从一个视图转到另一个视图,他们点击的最后一个按钮上的文本应显示在屏幕顶部的标签中。我想出了如何在应用程序的任何地方访问变量,以及如何在用户按下按钮时更改变量。然而,一旦按下按钮,我只能更改标签的文本,我希望它自动发生(视图显示标签已包含正确的文本)。
为此,我以两种不同的方式设置标签(我在网上找到):
@interface ViewMateria : UIViewController
{
IBOutlet UILabel *materiaLabel;
}
@end
和
@interface ViewMateria : UIViewController
@property (weak, nonatomic) IBOutput UILabel *materiaLabel;
@end
尽管如此,对于这两种方法,我无法通过简单的materiaLabel.text
或类似的方式访问标签,并且无需按下按钮就无法找到方法。
我一直在寻找这个问题的答案,我找到的任何东西似乎对我都没有用(因为我发现的大多数链接都教会了如何通过按下来更改标签文本按钮)。
这是我第一个使用Objective-C和Xcode的项目,我真的不知道答案,所以也许我错过了一些非常明显的东西,但是,如果有人能指出我正确的方向,那将是很有帮助。
答案 0 :(得分:0)
将它放在视图控制器的.h文件中:
@property (weak, nonatomic) IBOutput UILabel *materiaLabel;
当您要呈现视图控制器时,请按以下方式访问它:
your_ViewMateria_object.materiaLabel.text = @"";
然后呈现它..
你在使用segues吗?
如果是,那是另一个故事..
<强>更新强>
对于segues,请使用我刚才提到的.h属性值:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
ViewMateria *vm = [segue destinationViewController];
vm.materiaLabel.text = @"Whatever";
}
你现在应该好好去; D
有效吗?
答案 1 :(得分:0)
<强>更新强>
在第二个视图控制器.h文件中
@property (strong, nonatomic) NSString *buttonName;
.m文件
self.materiaLabel.text = self.buttonName;
在第一个视图控制器.m文件
中在IBAction
secondviewcontrollerObject.buttonName = [(UIButton *)sender currentTitle];