2012-10-09 25 views
23

Tôi đang cố gắng tạo ra một khoảng cách thư giãn nhưng không có gì sẽ kết nối với nó khi ctrl + kéo. Ngoài ra khi tôi nhấp chuột phải vào biểu tượng Thoát, không có tùy chọn nào khả dụng.Không thể kết nối Storyboard Unwind Segue

enter image description here

Bất kỳ ý tưởng nào?

+1

Trên một câu hỏi tương tự tôi đăng câu trả lời này: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new- exit-icon-được sử dụng-cho-khi-chỉnh sửa-storyboards-usi/13437054 # 13437054 – Eric

Trả lời

64

Bạn cần có IBAction được xác định trên bộ điều khiển chế độ xem có đối số thuộc loại "UIStoryboardSegue *".

Something như thế này:

@interface MyViewController 
... 
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue { 
} 
... 
@end 

Swift 3 Version

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 

Được cung cấp bởi DoruChidean trong https://stackoverflow.com/a/46199117/250190

+0

Ahh có! Cảm ơn bạn, hoạt động hoàn hảo. Nó chỉ là vấn đề xác định đối số UIStoryboardSegue. Tôi đã thiết lập nó là người gửi 'done: (id)'. –

+0

Tôi rất vui vì tôi có thể giúp đỡ. Sự nghiêm ngặt hơn là có để mọi hành động trong dự án của bạn không xuất hiện như một sự lựa chọn. –

+0

Làm cho tinh thần, cảm ơn thông tin. –

18

Chỉ cần làm rõ, liên kết này lên trong kịch bản, sau khi thêm phương thức trên vào "view controller bạn muốn thư giãn để "bạn cần phải kéo một segue từ một nút hoặc bất cứ điều gì trong" bộ điều khiển xem của bạn, bạn muốn thư giãn "xuống riêng của nó là màu xanh lá cây nhỏ" EXIT "biểu tượng trong thanh dưới cùng.

Sẽ có cửa sổ bật lên để liên kết tới "- unwindFromConfirmationForm".

Khi đã xong, khoảng cách thư giãn sẽ hoạt động.


Chỉ cần thêm vào Travis điểm tuyệt vời: là hoàn toàn rõ ràng:

Giả sử bạn vừa bắt đầu thử nghiệm với storyboards vì vậy bạn (a) làm một dự án iOS7 Xcode mới và (b) tạo ra một câu chuyện hội đồng quản trị với một bộ điều khiển chuyển hướng, và sau đó (c) bạn đã thực hiện năm hoặc sáu bộ điều khiển xem. Bạn muốn có thể di chuyển giữa các bộ điều khiển xem nửa tá bằng cách sử dụng thư giãn. {Điều nhỏ nhặt là "chuyển tiếp" bằng cách kéo điều khiển từ một nút trong một, tới nút tiếp theo.}

Bây giờ, tại thời điểm này: tất cả sáu bộ điều khiển chế độ xem, thực sự sẽ là "mặc định "lớp" ViewController ". Lưu ý rằng Xcode (hơi vô nghĩa) cung cấp cho bạn một tệp ViewController.h và ViewController.m.

Một lần nữa, tất cả sáu chế độ xem "ví dụ đơn giản" của bạn thực sự chỉ sử dụng tệp ViewController.m, tại thời điểm này. Vì vậy, rất đơn giản, nếu bạn thêm này:

-(IBAction)unwindUnused:(UIStoryboardSegue *)segue 
    { 
    NSLog(@"I did an unwind segway! Holy crap!"); 
    } 

Để có một tập tin "sơ khai" ViewController.m - trên thực tế, mỗi một trong sáu quan điểm của bạn bây giờ sẽ "làm việc", bạn sẽ có thể để kéo đến nút "Thoát" màu xanh lá cây nhỏ khét tiếng. Nó là dễ dàng.

Bây giờ chỉ TBC bình thường trong một dự án thực, bạn sẽ không bao giờ sử dụng tệp "ViewController.m" mặc định. Vì vậy, hãy vào đây:

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html

và tìm xuống một cách chính xác "Create Custom View Controller", và tất nhiên nó giải thích quá trình đó một cách chi tiết tuyệt vời nếu bạn là người mới.

Nhưng một lần nữa, nếu bạn chỉ lừa xung quanh và muốn làm cho nút màu xanh lá cây hoạt động để thư giãn, bạn chỉ cần đặt đoạn mã trong tệp "ViewController.m", và bạn đã đi. (Hãy nhớ rằng trong "cuộc sống thực" bạn sẽ đặt một cuộc gọi tùy chỉnh như vậy trong mỗi màn hình tùy chỉnh của bạn - có khả năng xử lý dữ liệu, v.v.) Hy vọng nó sẽ giúp !!

Tiền thưởng factoid: Lưu ý rằng nút "Quay lại" sẽ tự động xuất hiện trên thanh điều hướng khi bạn chỉ thử nghiệm như thế này! (ví dụ: ngay cả khi bạn không thêm phương thức thư giãn.)

+1

Đúng. Đó là tất cả một chút bối rối tại IMO đầu tiên nhưng dường như làm việc ra tốt. –

+0

Câu trả lời hữu ích tuyệt vời; Tôi đã thêm một số thông tin khác có thể giúp mọi người – Fattie

0

Bạn đang làm việc với phiên bản xcode6-beta phải không? trong phiên bản beta 1-3 là một lỗi ngăn cản trình xây dựng giao diện phát hiện các phân đoạn thư giãn. trong xcode6-beta4 lỗi này đã được sửa.

+0

Không, đây là năm trước. Chữ ký phương thức đã gây ra sự cố. –

+0

Ohhh xin lỗi đã không thấy rằng đó là năm trước đây. Dù sao vui mừng vấn đề đã được giải quyết – Fred

1

Đặc biệt dành cho Jon Hess! Đây là nhanh chóng 3 tương đương

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 
+0

Cảm ơn, tôi đã cập nhật câu trả lời của Jon với điều này. –

Các vấn đề liên quan