2016-01-07 3 views
-1

В новом проекте у меня есть 2 контроллера вида (View1 и View2).
У меня есть кнопка в View1 и метка в View2. Когда я нажимаю эту кнопку в View1, я хочу, чтобы имя/название кнопки отображалось на ярлыке в представлении 2, когда меня перевели на страницу View2. Как я могу это сделать?Как передать название кнопки на метку в другом контроллере просмотра

Я проверил эту страницу, но на самом деле не понимаю: Passing button title to a new view

+0

что же вы не понимаете об этом? – Wain

+0

У меня возникли ошибки, когда я набрал их. – tabbi

+0

Это потому, что они находятся в obj-c, а не быстро - но вы понимаете принцип, что ответ пытается объяснить, как вы должны подходить к проблеме? – Wain

ответ

-1

- На View2 создать свойство для приема кнопки название

@interface View2 : UIViewController { 

} 
@property (nonatomic, strong) IBOutlet UILabel *lblTitle; 
@property (nonatomic, strong) NSString *btnTitle; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.lblTitle.text = self.btnTitle; 
} 

В View1

@interface View1 : UIViewController { 

    } 
    @property (nonatomic, strong) IBOutlet UIButton *btn; 

    - (void)myButtonClicked:(id)sender{ 

    View1 *newViewController = [[View1 alloc] initWithNibName:'View1' bundle:nil]; 
    newViewController.btnTitle = self.btn.titleLabel.text; 

    // push or present controller 

    } 
+1

этот ответ неправильного языка – Wain

+0

В Swift пожалуйста. – tabbi

1

Создать новый класс CocoaTouch SecondViewController, подклассов UIViewController включая XIB и создать IBOutlet для label

Объявите переменную:

var labelTitle: String! в SecondViewController

SecondViewController ViewDidLoad будет выглядеть следующим образом:

override func viewDidLoad() { 
      super.viewDidLoad() 

      titleLabel.text = labelTitle 
} 

// Whereas titleLabel is the UILabel Outlet connected from XIB 

Теперь в вашем FirstViewController, на вашей кнопке Зафиксированное действие

добавить следующие

@IBAction func buttonAction(sender : UIButton) { 
    // If the VCs are in a storyboard you will need to get the storyboard to access them 
    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil) as UIStoryboard 
    let secondVC = mainStoryboard.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController 
    secondVC.labelTitle = sender.titleLabel?.text 

    // If not do this 
    let secondVC = SecondViewController.init(nibName: "SecondViewController", bundle: nil) 
    secondVC.labelTitle = sender.titleLabel?.text 
} 

//Next present or push your ViewController 
+0

Как назначить labelTitle для моего UILabel? – tabbi

+0

Я отредактировал свой ответ. Пожалуйста, проверьте –

+0

Большое вам спасибо! Для кода в FirstViewController я все время получаю ошибку «ожидаемой декларации» во второй строке. – tabbi

Смежные вопросы