2013-07-24 44 views
12

Tôi có một lớp tùy chỉnh kế thừa từ UIControl, để nhận các sự kiện liên lạc. Về cơ bản nó là một bộ sưu tập các điều khiển khác hoạt động như một. Tôi đang chuyển đổi ứng dụng của mình từ xib sang bảng phân cảnh. Nó hầu như không đau, ngoại trừ điều này.Làm thế nào tôi có thể nhận được UIControl tùy chỉnh để tham gia vào một phân đoạn như một hành động đẩy?

Tôi kéo một UIView vào cảnh của tôi, thay đổi lớp để điều khiển tùy chỉnh của tôi, móc nó lên đến các cửa hàng trên ViewController của tôi. Những gì tôi muốn làm với sự kiểm soát khi nó được nhấp là thực hiện một (push) segue để ViewController khác. Nhưng các cửa hàng trong nhà thiết kế không có cho UIControl của tôi để thiết lập segue.

Có thể thực hiện việc này không? Nếu vậy, tôi phải làm gì với lớp học để kích hoạt nó?

Trả lời

7

Tôi không nghĩ vậy. Nhìn vào bảng Connections Inspector, UIButtonUIBarButtonItem trường hợp được điều trị-an thật đặc biệt "segues kích hoạt" hành động mà bạn có thể kết nối với bộ điều khiển xem liền kề:

UIButtons can trigger segues

Trong khi thay đổi lớp xem của bạn để một hậu duệ của UIControl làm cho bộ tiêu chuẩn của các sự kiện kiểm soát có sẵn, tiếc là giao diện Builder không cho phép bạn treo lên một segue. Điều tốt nhất bạn có thể làm là tạo ra một segue thủ công-kích hoạt từ bộ điều khiển xem của bạn đến một, sau đó kết nối điều khiển tùy chỉnh của bạn đến một phương pháp IBAction rằng thực hiện segue lập trình:

- (IBAction)performManualSegue:(XYZCustomControl *)sender 
{ 
    [self performSegueWithIdentifier:@"manualPushSegue" sender:sender]; 
} 

IBAction for manually triggering segue