如何将标签内的标签快速传递给另一个视图控制器[关闭]
Posted
技术标签:
【中文标题】如何将标签内的标签快速传递给另一个视图控制器[关闭]【英文标题】:How to pass label inside a label to another view controller in swift [closed] 【发布时间】:2015-07-28 11:59:49 【问题描述】:我有一个视图,其中包含一个动态变化的标签。如何将标签中的文本放入数组中,然后将其传递给另一个视图控制器?
【问题讨论】:
你到底卡在哪一部分?你以前用过表格视图吗?您能否提供有关“动态更改”方式的更多详细信息? @nhgrif 是的,我有。我最近才开始开发,因此您可能会称其为 ios 开发新手。为了扩展我的知识和提高我的技能,我正在开发一个 QRScanner 应用程序,我有 2 个视图(例如视图 A 和 B)。在视图 A 中,我已成功完成 QRScanning 部分,并将 QR 扫描的详细信息(例如网站链接、名称、数字)存储在标签中。在视图 B 中,我有一个空白表格视图,我希望能够使用存储在视图 A 的标签中的扫描详细信息来填充 tableView 中的单元格。我很困惑如何使用标签中的数据填充表格视图单元格 你以前用过table view,你是怎么填充数据的? @nhgrif 使用元组并使用 alertController 手动添加它们我从来没有厌倦过这么广泛的东西 如果您是 iOS 编程新手,我建议您学习 iTunesU 中的课程Developing iOS 8 Apps in Swift
。本课程的旧版本使用了 Objective-C。本课程将教你如何做到这一点,并教你 iOS 中的其他框架。
【参考方案1】:
好吧,您的问题不是那么清楚,但正如我可以预测的那样,您正在从标签视图导航到表格视图,并希望在表格视图中显示标签的所有这些值。 您可以通过将这些标签的所有值放在一个可变数组中并在表视图控制器中创建一个 NSMutableArray 类型的属性来实现这一点。并在导航时,将标签视图数组放入表视图控制器的属性中。 您可以查看以下代码以供参考。
标签视图控制器
@interface DummyViewController ()
NSMutableArray *array;
@end
@implementation DummyViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([segue.identifier isEqualToString:@"segue"])
array = [[NSMutableArray alloc]initWithObjects:label1.text,label2.text,label3.text nil];
FinalTableViewController *view = [self.storyboard instantiateViewControllerWithIdentifier:@"view"];
view.dataArray = array;
在表格视图控制器中
.h 文件
@interface DummyViewController : UIViewController
@property (nonatomic,strong) NSMutableArray *dataArray;
@end
现在在表格视图委托方法中使用这个数据数组来填充数据。 如果您发现答案有用,请不要忘记打绿色勾。
【讨论】:
以上代码在目标 C 中,我正在寻找如何在 swift 中实现它 我只是给你一个关于如何实现它的基本知识,你所要做的就是用 swift 语法更改上面的代码【参考方案2】:创建一个类似 NSDictionary 或 NSArray 的数据结构,并将视图 A 的详细信息保存到其中。然后当您的视图 B 被调用时,将这些值传递给视图 B 并使用它来填充您的 TableView
快速示例
ViewController 类类视图控制器:UIViewController
var label1 = UILabel()
var label2 = UILabel()
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
func updateLabels()
label1.text = "LABEL 1"
label2.text = "LABEL 2"
///If you are using Xibs
@IBAction func loadTableViewController()
// Create a data structure for the data you want to send
var array : NSMutableArray = NSMutableArray()
array.addObject(label1.text!)
array.addObject(label2.text!)
// Create a viewcontroller instance of tableViewController
let viewcontroller = tableViewController(nibName:"tableViewController",bundle:nil)
viewcontroller.dataSourceArray = array
//// If you are using Story Board
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
// Create a data structure for the data you want to send
var array : NSMutableArray = NSMutableArray()
array.addObject(label1.text!)
array.addObject(label2.text!)
// Create a new variable to store the instance of tableViewController
let destinationVC = segue.destinationViewController as! tableViewController
destinationVC.dataSourceArray = array
Tableview 控制器类
类 tableViewController: UITableViewController
@IBOutlet var tableview: UITableView!
var dataSourceArray : NSMutableArray!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
// dataSourceArray will contain the label details passed from previous view controller.
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
// you can set the details from the dataSourceArray
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
// you can set the details from the dataSourceArray
【讨论】:
你能举个例子吗?谢谢 检查更新的答案以上是关于如何将标签内的标签快速传递给另一个视图控制器[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在ios中自定义推送和弹出动画时将视图传递给另一个控制器? [关闭]
识别选择了哪个tableviewcell并将值传递给另一个视图控制器[重复]