У меня есть представление, которое состоит из ярлыка, который изменяется динамически. Как я могу поместить текст в метку в массив, а затем передать его другому контроллеру вида ?Как передать метку внутри метки другому контроллеру представления в swift
ответ
Создайте структуру данных, такую как NSDictionary или NSArray, и сохраните детали своего вида A в нем. Тогда, когда ваш вид B называется, передать эти значения View B и использовать его для заполнения Вашего TableView
примера быстрой
- ViewController класса
класса 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
}
- Класс наблюдения Tableviewcontroller
класс 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
}
Можете ли вы привести пример о том, как это сделать?спасибо – Sar
проверить обновленный ответ –
Ну ваш вопрос не так ясен, но, как я могу предсказать, вы перемещаетесь с точки зрения этикетки в виде таблицы и хотим, чтобы показать все эти значения ярлык в виде таблицы. Вы можете достичь этого, поместив все значения этих меток в изменяемый массив и в контроллер представления таблиц, создайте свойство типа NSMutableArray. и во время навигации поместите массив меток в свойство контроллера табличного представления. Вы можете увидеть приведенный ниже код для справки.
Ярлык View Controller
@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 – Sar
Я просто дал вам базовые знания о том, как вы можете это реализовать, Все, что вам нужно, это изменить приведенный выше код в быстром синтаксисе –
Какую часть вы точно придерживаетесь? Вы когда-нибудь использовали табличный вид раньше? Можете ли вы предоставить более подробную информацию о «изменениях динамически»? – nhgrif
@nhgrif да есть. Это то, что вы могли бы назвать новичком в iOS, поскольку я только начал развиваться в последнее время. Чтобы расширить свои знания и улучшить свои навыки, я больше разрабатываю приложение QRScanner, и у меня есть 2 вида (например, View A & B). В виду A Я успешно выполнил часть QRScanning, и я хранил QR-отсканированную информацию (например, ссылки на сайты, имена, цифры) на ярлыке. В виду, что BI имеет пустой табличный вид, я хочу иметь возможность заполнять ячейки в таблицеView с помощью отсканированных данных, хранящихся в метке вида A.Am всасывает, что делать, чтобы заполнить ячейки представления таблицы данными с метки – Sar
Когда вы раньше использовали табличный вид, как вы заполняли данные в них? – nhgrif