如何傳遞preareForSegue:一個對象我在mapview中有許多注釋(與rightCalloutAccessory(按鈕)。按鈕將從此執行一個segue。mapview轉到tableview..我想通過tableview一個不同的對象(保存數據),這取決于單擊了哪個標注按鈕。例如:(完全是虛構的)注釋1(奧斯汀)->傳遞數據obj 1(與奧斯汀相關)注釋2(達拉斯)->傳遞數據obj 2(與達拉斯相關)注釋3(休斯頓)->傳遞數據obj 3等等.(你知道)我能夠檢測到哪個呼號按鈕被點擊了。我在用prepareForSegue*將數據obj傳遞給目標ViewController..由于我不能讓這個調用為我所需的數據obj增加一個參數,那么有哪些優雅的方法可以達到相同的效果(動態數據obj)?任何提示都將不勝感激。
3 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ // Make sure your segue name in storyboard is the same as this line if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"]) { // Get reference to the destination view controller YourViewController *vc = [segue destinationViewController]; // Pass any objects to the view controller here, like... [vc setMyObjectHere:object]; }}
performSegueWithIdentifier:sender:
IBAction
performSegueWithIdentifier:
// When any of my buttons are pressed, push the next view- (IBAction)buttonPressed:(id)sender{ [self performSegueWithIdentifier:@"MySegue" sender:sender];}// This will get called too before the view appears- (void)prepareForSegue: (UIStoryboardSegue *)segue sender:(id)sender{ if ([[segue identifier] isEqualToString:@"MySegue"]) { // Get destination view SecondView *vc = [segue destinationViewController]; // Get button tag number (or do whatever you need to do here, based on your object NSInteger tagIndex = [(UIButton *)sender tag]; // Pass the information to your destination view [vc setSelectedButton:tagIndex]; }}

忽然笑
TA貢獻1806條經驗 獲得超5個贊
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if ([segue.destinationViewController respondsToSelector:@selector(setMyData:)]) { [segue.destinationViewController performSelector:@selector(setMyData:) withObject:myData]; } }
@property (nonatomic, strong) MyData *myData;

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if let yourVC = segue.destination as? YourViewController { yourVC.yourData = self.someData }}
- 3 回答
- 0 關注
- 671 瀏覽
添加回答
舉報
0/150
提交
取消