c# - 在 xamarin.ios 中的 View Controller 之间传递数据

标签 c# ios xamarin uitabbarcontroller viewcontroller

我正在 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/

相关文章:

c# - 在 aspx 页面中使用代码隐藏值设置 div 数据属性

c# - 无法使用命名空间反序列化 XmlArray

c# - 不明确的构造函数调用错误

iphone - 无法在 Xcode 4.5 中安装 iOS 5.1 模拟器

xamarin - 有没有办法在 Webview 中将 xamarin 登录页面连接到我的网站?

C# 属性显式设置与覆盖获取

ios - 更换 App Store 中的现有应用程序需要哪些步骤?

iphone - 单击时突出显示表格 View 单元格,而不是在释放时突出显示

c# - Xamarin 形成带有图像的 ListView |文字 |时间

android - Xamarin 颜色导致构建错误