iOS故事板实例化viewController和IBAction

时间:2011-12-09 21:45:49

标签: ios storyboard

我很快就会生气。

这就是原因: - 我启动了带有故事板的Single View Application项目。然后我在viewController的storyboard中设置视图控制器类名。 - 下一步我在AppDelegate方法中为这个viewController创建了一个指针... didFinishLaunchingWithOpt ...并通过调用[myStoryboards instantiate ...]来填充它。它工作得很好,因为我可以像[vc1 setMyName]那样调用像self.myName = @“Johnny”那样的smthng; - 但它来了。当我创建与按钮连接的IBAction方法时,此方法对“Johhny”一无所知。这是因为我在另一个例子。当我检查“自我”的地址时,它是另一个......

WhyWhyWhy ???请帮助,我如何使用仍然相同的对象 - 由故事板在AppDelegate中实例化的对象和“界面构建器”中的故事板中的对象。

谢谢。


哦,我的。我想我真的没有考虑到它...... 当我们谈论从故事板中获取其他viewControllers的指针时......

我通过调用rootViewContr获得了initialViewController ...另一个与segue(modal)连接的地方是UITableView。在rootViewController上获取数据,我想在列表中的另一个上显示它们(UITableView)。所以我调用segue(performSegueWithIdentifier),显示另一个控制器,但列表清晰。因为我调用的方法是使用tableView变量,该变量为null:/因为,我又在另一个对象中。那是因为我称之为方法故事板实例化...我如何得到完全相同的viewController,我在故事板中工作。这对我来说很混乱:/

我读了一些关于prepareForSegue的内容并通过destinationViewController获取指针,但这不是我想要的。在调用segue方法之前我需要指针,并且显示了viewController ......

谢谢。

1 个答案:

答案 0 :(得分:4)

如果您已在故事板中正确设置初始视图控制器,则无需将其分配到rootViewController中的Windows -applicationDidFinishLaunchingWithOptions:属性,因为这是自动完成的。听起来你正在创建第二个实例。要通过故事板访问原始实例设置,只需在-applicationDidFinishLaunchingWithOptions:

中执行此操作
InitialViewController *viewController = (InitialViewController *)self.window.rootViewController;
viewController.myName = @"Johnny";