我正在 Xamarin.iOS (C#) 中开发一个 iPhone 应用程序,我被困在 ViewController 之间传递变量(我正在使用 Storyboard)。
下面列出了我的应用程序的总体布局:
LoginViewController --> TabViewController --> NavigationController --> MainViewController
添加了屏幕截图:
Overview of my Storboard - Explains what I want to do:
我想做的是,当用户的凭据在“LoginViewController”中成功验证后,应用会将用户带到“MainViewController”。
我还想从“LoginViewController”向“MainViewController”传递一个变量(比方说“userName”)。但是,我没有运气。
我在下面发布了我的代码。它正在工作(传递变量)但问题是因为我们直接从 LoginView 推送到 MainView,Tabbar 和 Navigation Bar 不再显示。
如果 tabViewController 存在,在 ViewController 之间传递数据的最佳实践是什么?
// Instantiating the MainViewController
MainViewController controller = this.Storyboard.InstantiateViewController("MainViewController") as MainViewController;
//Here I pass the data from the LoginViewController to the MainViewController
controller.userName= this.userName;
// Show the MainViewController
this.NavigationController.PushViewController(controller , true);
任何建议将不胜感激!
最佳答案
您可以在 NSUserDefaults 中保存一些数据。
var UserData = NSUserDefaults.StandardUserDefaults;
UserData.SetString(this.UserName,"UserName");
你可以在你的应用中的任何地方使用它
var UserData = NSUserDefaults.StandardUserDefaults;
UserData.StringForKey("UserName");
您尝试传递数据的方式是正确的,但您不能直接从 LoginView 打开主视图。如需更多帮助,您应该尝试阅读一些有关使用 TabView 的文章。
https://developer.xamarin.com/guides/ios/user_interface/controls/creating_tabbed_applications/
关于c# - 在 xamarin.ios 中的 View Controller 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156270/