如何傳遞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:
IBActionperformSegueWithIdentifier:
// 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
提交
取消
