我攜帶一個包含對象集合的uitableview。 當我點擊一個UITableViewCell打開另一個UIView。 但我想發送UITableViewCell中的這個新UIView對象並在那裏顯示它們的詳細信息。 我跟着回答這個問題加載另一種觀點認爲:ViewController Segue Xamarin 我很感激,如果有人幫助如何使用segue傳遞對象
0
A
回答
1
覆蓋PrepareForSegue在你的ViewController設置目標控制器上的參數。您需要定義目標控制器上的公共方法或屬性,使您可以傳遞參數:
public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "TaskSegue") { // set in Storyboard
var navctlr = segue.DestinationViewController as TaskDetailViewController;
if (navctlr != null) {
// some public method you create in your destination controller
navctlr.SetTask (this, item);
}
}
}
1
有幾個解決方案,第一種是使用 prepareForSegue(_:發件人:)方法:
討論 此方法的默認實現什麼也不做; 可以覆蓋它,以基於segue的上下文將相關數據傳遞給新視圖控制器或窗口控制器。賽格對象 描述了轉換並且包括對涉及賽格的兩個控制器 的引用。
可以從多個來源觸發分段,因此請使用segue和發件人參數中的信息 來消除應用程序中不同的 邏輯路徑之間的歧義。例如,如果segue源自 表格視圖,則sender參數將標識用戶點擊的單元格。您可以使用該信息在 目標視圖控制器上設置數據。
在你需要 「拯救」 要在didSelectRow傳遞對象THI情況:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.currentObjectToPass = .. some object from array or somewhere else..
}
然後將其設置爲下一個VC:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton*)sender {
if ([segue.identifier isEqualToString:@"bookingDetailsSegue"]) {
self.nextVC = segue.destinationViewController;
self.nextVC.objectToPass = self.currentObjectToPass;
}
}
另一種方法是拒絕使用segues並通過storyboardID獲取vc。
這樣你需要 instantiateViewController(withIdentifier :)方法:
返回值對應於指定的 標識符字符串視圖控制器。如果沒有視圖控制器與 字符串關聯,則此方法會引發異常。
討論您可以使用此方法來創建你想要操作和編程目前在 應用程序 視圖控制器對象。在使用此方法檢索控制器之前,必須使用Interface Builder中的適當標識符 字符串明確標記它。
每次調用指定視圖控制器 時,此方法都會創建一個新實例。
然後你的代碼看起來就像這樣:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.nextVC = [self.storyboard instantiateViewControllerWithIdentifier:@"nextVCID"];
self.nextVC.objectToPass = = .. some object from array or somewhere else..
[self.navigationController pushViewController:self.nextVC animated:YES];
}
而且不要忘記在IB設置VC的標識(ID故事板)在這裏:
相關問題
- 1. 使用Segue傳遞對象
- 2. 使用segue的xcode傳遞對象
- 3. 用segue傳遞UIImage
- 4. 用segue傳遞UIImage
- 5. 如何使用$ rootScope傳遞對象?
- 6. 使用didSelectRowAtIndexPath傳遞對象:
- 7. 傳遞對象使用jQuery
- 8. 如何傳遞對象ID?
- 9. Segue傳遞整數
- 10. 如何通過segue傳遞變量?
- 11. 爲什麼我的對象沒有通過segue正確傳遞?
- 12. 通過故事板傳遞一個對象Segue
- 13. 如何使用segue在uitextview中傳遞值
- 14. 如何使用segue傳遞拍攝的照片
- 15. 如何在不使用segue的情況下傳遞數據
- 16. 傳遞對象
- 17. 傳遞對象
- 18. 傳遞對象
- 19. 對象傳遞對象WEBSERVICES
- 20. 傳遞使用RMI的對象引用
- 21. 如何將對象傳遞給DLL或從中傳回對象?
- 22. 如何將對象引用傳遞給另一個對象?
- 23. 傳遞新對象或對象引用
- 24. 傳遞數據展開segue
- 25. 通過segue傳遞數據
- 26. 傳遞字符串Segue Swift
- 27. 通過segue傳遞NSArray
- 28. 通過Segue傳遞信息
- 29. 通過segue傳遞數據
- 30. 如何使用openDDS傳遞任何對象?
嘗試的https:/ /developer.xamarin.com/api/member/UIKit.UIViewController.PrepareForSegue/ – brandonscript