2012-05-31 30 views
6

tôi đang làm việc trên cốt truyện trong đó có vài ý kiến ​​về quan điểm đầu tiên là một điều kiện được đặt tôi muốn nếu thỏa mãn điều kiện sau đó chỉ chuyển hướng nên xảy ralàm thế nào để áp dụng điều kiện dựa segue tùy chỉnh trong kịch bản

Đối với điều này tôi đã sử dụng Tuỳ chỉnh segue nhưng không có vấn đề tình trạng của tôi đáp ứng hay không nó điều hướng đến xem mới.

Tôi đã tạo ra phương pháp trong lớp tùy chỉnh segue

- (void) perform{ 

    NSLog(@"source %@",self.sourceViewController); 
    NSLog(@"dest %@",self.destinationViewController); 

    UIViewController *sVC=self.sourceViewController; 
    UIViewController *dVC=self.destinationViewController; 

    [sVC.navigationController pushViewController:dVC animated:YES]; 


} 

Tôi muốn thiết lập tình trạng nếu kết quả là 1 thì chỉ cần điều hướng. Woul preparforsegue hoặc initwithsegue cung cấp cho tôi bất kỳ sự trợ giúp nào

+0

Định dạng mã của bạn. –

Trả lời

30

Bạn có nói rằng bạn chỉ muốn thực hiện phân đoạn nếu điều kiện là đúng?

Nếu có, thay vì tạo phân đoạn trực tiếp từ điều khiển hoặc ô bảng, hãy tạo khoảng cách không kích hoạt. Một segue triggerless có bộ điều khiển xem như là nguồn của nó, và nó sẽ không bao giờ tự động cháy. Thay vào đó bạn có thể kích hoạt nó theo chương trình bất kỳ lúc nào bạn muốn, kể cả từ IBAction.

Để tạo khoảng cách không kích hoạt, hãy bắt đầu điều khiển + kéo khoảng cách từ biểu tượng bộ điều khiển có chứa chế độ xem trong khung cảnh ở cuối cảnh. Kéo đến cảnh đích như bình thường và chọn loại segue. Chọn segue, và trong thanh tra, chọn một định danh segue.

Khi chạy, khi bạn muốn thực hiện phân đoạn, hãy gọi - [UIViewController performSegueWithIdentifier: sender:]. Bạn có thể chuyển bất kỳ đối tượng nào bạn muốn cho người gửi, bao gồm cả nil. Nếu người gửi không sử dụng cho bạn, hãy chuyển nil.

Vì vậy, trong bản tóm tắt:

  • Tạo một segue triggerless từ bộ điều khiển xem đến hiện trường nơi
  • Đặt một định danh cho segue trong thanh tra
  • Khi chạy, và mẫu mã, cuộc gọi - [UIViewController performSegueWithIdentifier: sender:] khi bạn muốn kích hoạt segue.
+0

Cảm ơn câu trả lời của bạn nhưng bạn có thể nói với tôi rằng chuyển động tôi kéo từ nguồn đến đích cho thấy tôi đẩy, phương thức, tùy chỉnh và tôi chọn tùy chỉnh và cung cấp cho segue này một mã định danh. gọi phương thức lớp segue khi nhấn vào nút như thế nào nó sẽ kiểm tra điều kiện –

+0

hi Jon, tôi áp dụng như bạn nói và bây giờ nó đẩy hai lần tôi tạo ra một segue đẩy và thiết lập nó định danh khi tôi bấm vào nút tôi đã viết [UIViewController Phương thức performSegueWithIdentifier: sender:] [self performSegueWithIdentifier: @ "JHCustomSegue" sender: nil]; bạn có thể vui lòng chk wat tôi đang làm sai ở đây –

+3

Hi cuối cùng tôi tìm thấy solutio Hy vọng nó giúp người khác Bạn có thể tự thực hiện segues. Khi bạn tạo một phân đoạn trong bảng phân cảnh, thay vì Ctrl + Kéo từ nút sang Trình điều khiển Chế độ xem, hãy kéo từ Trình điều khiển Chế độ xem sang một Trình điều khiển Chế độ xem khác. Đặt tên cho segue, sau đó trong mã của bạn, bạn gọi [self performseguewithidentifier @ "seguename"] –

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