2014-07-25 50 views
8

Tôi đã cố gắng để thêm một segue thư giãn cho một ứng dụng nhanh chóng trong Xcode 6, và, trong các ghi chú phát hành cho ba bản beta đầu tiên, nó đã được tuyên bố là không được hỗ trợ. Tuy nhiên, trong bản Beta 4, ghi chú lỗi đó không còn tồn tại nữa. Tôi đã nghe nói rằng mọi người đã có thể làm cho nó hoạt động, nhưng tôi đã không có may mắn như vậy. Vì vậy, câu hỏi của tôi là: làm thế nào tôi nên cố gắng để xem nếu segue thư giãn sẽ làm việc trong ứng dụng của tôi? Tôi nên thử cái gì? Tôi đang sử dụng một UIBarButtonItem để kích hoạt segue.Unwind Segue in Xcode 6 Beta 4

Cho đến nay, tôi đã đặt mã này trong file .swift bộ điều khiển đích:

@IBAction func unwindToSegue(segue:UIStoryboardSegue) {} 

Sử dụng mã này, tôi đã có thể kết nối vào nút thanh với chức năng bằng cách điều khiển-kéo từ quán bar nút để biểu tượng thoát, và sau đó nhấp vào phương thức relaxToSegue. Phần đó đã làm việc, nhưng mã không chạy, ngay cả khi tôi đặt một điểm ngắt bên trong hàm nó không được gọi.

Trả lời

21

Bạn cần đặt hàm unwindToSegue trong ViewController có nguồn gốc (tức là ViewController mà bạn đang cố quay lại).

Một điều khác bạn có thể thử là gọi segue theo chương trình. Đầu tiên, dây một lối ra segue từ biểu tượng điều khiển xem để biểu tượng thoát (ba biểu tượng là tất cả trên đầu của bộ điều khiển xem trong Interface Builder). Cung cấp cho segue một cái tên như "goBackHome". Sau đó, bấm nút của bạn để gọi số này @IBAction:

@IBAction func headHome() { 
    println("Button seen. Trigging exit segue manually...") 
    self.performSegueWithIdentifier("goBackHome", sender: self) 
} 
+0

Vâng, nó nằm trong bộ điều khiển mà tôi đang cố gắng quay lại. – trumpeter201

+0

Tôi đã tạo một dự án mới và có thể làm cho nó hoạt động bằng cách sử dụng chức năng của bạn. Tôi xác minh rằng nếu bạn đặt nó trong bộ điều khiển bạn đang trở về từ thay vào đó, nó sẽ cho phép bạn móc nó lên, nhưng nó không làm gì cả. Đó là lý do tại sao tôi nghĩ bạn có thể đã làm điều đó. – vacawama

+0

Tôi đã tìm thấy sự cố, tệp .swift của trình điều khiển chế độ xem không được kết nối chính xác với bộ điều khiển chế độ xem. Đây là vấn đề cơ bản, vì vậy tôi đang xem xét nó đúng. Cảm ơn. – trumpeter201

0

Với XCode 6 Beta 4 hoạt động. Loại bỏ @objc (classname) khỏi định nghĩa lớp và xóa tệp .h workaround.

Tôi đã có hiệu ứng tương tự ngày hôm qua, một trong các nút của tôi trong Chế độ xem của tôi không kích hoạt khoảng cách thư giãn.

Hãy thử rằng: Thả UIButton mới trên bộ điều khiển chế độ xem của bạn và để nguyên như vậy. Không thay đổi bất cứ điều gì chỉ để đảm bảo rằng không có tác dụng phụ. Sau đó kết nối nút này để segue thư giãn của bạn và thử nếu nó hoạt động.

0

Tôi gặp vấn đề tương tự. chức năng thư giãn được hiển thị khi tôi chọn nút thoát và nó đã được kết nối và tất cả, nhưng khi chạm vào nút, không có gì xảy ra.

Sau khi một số rắc rối xung quanh tôi nhận ra rằng đó là do Segue tôi đã chọn để chuyển từ một bộ điều khiển chế độ xem sang bộ điều khiển khác.

Vấn đề hóa ra là chế độ xem tôi muốn quay lại có nhiều thành phần điều hướng khác nhau, khi hiển thị chế độ xem "con" đã bị xóa. Tôi giải quyết nó bằng cách thay đổi nó từ Show (hoặc hiển thị chi tiết) để bật lên.

Chuyển đến segue, chọn Attribute Inspector và từ đó bạn có thể thay đổi segue.

1

Vấn đề của tôi là tôi segue'd để một bộ điều khiển xem tiêu chuẩn (VC) từ một container tùy chỉnh VC, nhưng cố gắng để segue trở lại bị mất thanh nav gốc. Các diễn đàn nghiên cứu tiết lộ rằng việc tách biệt các phân đoạn sẽ "bật" VC mới "giao thức" ra khỏi ngăn xếp & cho phép tôi quay trở lại VC ban đầu "giao thức" không thay đổi.

Tôi đã kéo một nút vào VC mới, trước tiên kéo nó vào tệp nhanh để tạo hành động "back2main", sửa đổi nó như sau, THEN kéo nút vào biểu tượng thoát ở đầu chính VC mới , tạo ra "khoảng cách thư giãn".

@IBAction func back2main(segue: UIStoryboardSegue) { 
    dismissViewControllerAnimated(true, completion: nil) 
} 
Các vấn đề liên quan