我正在编写一个使用故事板的应用,我想通过点击上一个视图中的按钮来更新一个视图中的标签。
_label.text = variable1;
是我用来更改标签值的行,当我点击按钮时,它将在下一个视图中。使用这种方法,我可以轻松地在与按钮相同的视图中更改标签,但是当我转到下一个视图并看到空标签时,它什么都不做。
我试过到处寻找并发现类似的问题,但找不到任何对我有用的东西,所以任何解决方案都会非常感激!
答案 0 :(得分:1)
不幸的是,无法在故事板中的不同场景之间连接IBOutlet
。
很难提出一些精确的解决方案,因为您必须提供有关设置的更多详细信息。不过,可以概述一些可能的解决方案:
prepareForSegue
如果在执行segue后出现要修改的视图控制器,则可以在prepareForSegue
函数中自定义其外观。
您可以将想要修改另一个视图控制器的视图控制器指定为其委托。例如,如果ViewController1
想要修改ViewController2
:
@interface ViewController1: UIViewController {}
@property (nonatomic,weak) ViewController2 *controllerThatIWantToModify;
通过这样的设置,您可以致电:
self.controllerThatIWantToModify.label.text = variable1;
答案 1 :(得分:0)
你使用故事板,所以你的第一个viewController(带按钮)必须有一个segue到你的第二个(带有标签)。
如果是这种情况,您可以使用第一个视图控制器的prepareForSegue
方法设置第二个视图控制器的标签。
使用segue对象调用此方法,该对象具有destinationViewController属性,该属性是您的第二个视图控制器。
如果你有来自这个viewController的几个segue,你应该检查它是否是正确的segue然后进行设置。
为此,您需要设置插座,以便您从viewController访问标签。
然后,您可以在视图控制器中编写setUpLabelsWith:(NSString)text1 ...
方法,也可以直接从第一个视图控制器访问插座(假设它们不是私有的)。
是的,假设你的第二个视图控制器有一个自定义类。