Trong khi thực hiện một khoảng cách giữa hai bộ điều khiển xem làm thế nào để thay đổi một thuộc tính của bộ điều khiển xem đích bằng cách sử dụng đối tượng segue? Tài liệu nói rằng điều này có thể được thực hiện bên trong phương thức preparForSegue: sender:. Tôi đã thử nó nhưng không thành côngiOS 5 segue implementation
Trả lời
Dunno nếu bạn vẫn cần câu trả lời cho điều này, nhưng đó là một bài đăng cô đơn, và nếu tôi đúng, điều này không thuộc NDA nữa. Nếu tôi nhầm, hãy kiểm duyệt câu trả lời của tôi thành lãng quên, vì vậy ở đây chúng tôi đi: Tôi vừa hoàn thành một cái gì đó sử dụng những gì bạn cần. Đây là mã hoạt động cho tôi:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"relevantSegueIdentifier"])
{
// [segue destinationViewController] is read-only, so in order to
// write to that view controller you'll have to locally instantiate
// it here:
ViewController *upcomingViewController = [segue destinationViewController];
// You now have a solid reference to the upcoming/destination view
// controller. Example use: Allocate and initialize some property of
// the destination view controller before you reach it and inject a
// reference to the current view controller into the upcoming one:
upcomingViewController.someProperty = [[SomePropertyClass alloc] initWithString:@"Whatever!"];
upcomingViewController.initialViewController = [segue sourceViewController];
// Or, equivalent, but more straightforward:
//upcomingViewController.initialViewController = self;
}
}
Giả định rằng cả một sốProperty và initialViewController đều là bộ tổng hợp của trình điều khiển chế độ xem đích. Hi vọng điêu nay co ich!
Tôi đã viết một hướng dẫn cung cấp các ví dụ mã để truyền thông tin đến cảnh mới và thông tin trở lại từ cảnh sử dụng ủy quyền để kiểm tra nó, nó sẽ giải quyết vấn đề của bạn. iOS 5 Storyboard: How To use Segues, Scenes and Static Content UITableViews
Tôi đã đọc blog trước khi nhấn bài đăng này .. cảm ơn blog. – thesummersign
Tôi đã tạo một video về chủ đề này. Tôi hy vọng nó sẽ giúp. http://full.sc/17yKkZF
gì tôi sử dụng theo quan điểm của nguồn điều khiển là:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIViewController *upcomingViewController = [segue destinationViewController];
upcomingViewController.view.tag = [[segue identifier] hash];
}
Và sau đó trong bộ điều khiển xem nơi tôi sử dụng (sử dụng ví dụ trong viewDidAppear)
if(self.view.tag == [@"MySeqgueIdentifier" hash])
{
// Do something here...
}
Đây là mát mẻ, vì bạn không phải tạo bất kỳ thuộc tính nào vv và mọi thứ hoạt động ngay từ trình tạo giao diện.
nó thuộc NDA nhưng trong 3 ngày nó sẽ không được phát hành chính thức là vào ngày 14 tháng 10, nhưng tôi thích câu trả lời của bạn +1 –
Tôi đã thử những gì bạn nói nhưng thuộc tính trên 'destinationViewController' của tôi không cập nhật . Lời khuyên nào? – Francesco
Tôi lấy nó, bạn sử dụng một bộ tổng hợp (không phải là một thanh công cụ riêng) của bộ điều khiển xem đích và bộ điều khiển xem đã được khởi tạo trong quá trình thiết lập ứng dụng (tức là bảng phân cảnh với bộ điều khiển xem thực tế được đặt trong đó, một khoảng cách giữa chúng tất cả phóng). Trong trường hợp đó, nó sẽ hoạt động. Sau đó nó có thể là một cái gì đó giống như hệ thống không biết về số phận cụ thể của bạn. xem lớp điều khiển. Lớp ViewController trong ví dụ của tôi là một lớp con của UIViewController, và trước khi @implementation tôi làm một cái gì đó như '#import' ViewController.h "'. Nó có thể là một trong những thứ này không? – DarqueSandu