của Apple khuyến cáo sử dụng performSegueWithIdentifier:sender:someObject
để lập trình thực hiện segues. Có ít nhất một vài lợi thế để thực hiện nó theo cách này:
Ít mã của riêng bạn có nghĩa là bạn đang cho khuôn khổ làm nhiều công việc. Nếu Apple đưa ra một số hiệu ứng hình ảnh mới cực kỳ thú vị cho các phân đoạn đẩy hoặc cải thiện hiệu suất hoặc sửa lỗi trong một số bản phát hành iOS trong tương lai, ứng dụng của bạn có thể tải miễn phí. Và mỗi dòng mã bạn viết để làm việc, khung làm việc có thể làm cho bạn tăng khả năng viết các lỗi.
Thông tin thêm trong IB có thể dễ thay đổi hơn. Nếu bạn quyết định bạn muốn thay đổi tất cả các phân đoạn push sang phân đoạn phương thức hoặc một số loại segue tùy chỉnh, nơi bạn có hiệu ứng hình ảnh siêu mát mẻ của riêng mình, bạn có thể chọn 'em tất cả trong IB và thay đổi loại segue bằng một cú nhấp chuột thay vì săn bắn xung quanh trong mã của bạn.
Bên cạnh đó, cho dù bạn sử dụng phương pháp đầu tiên hoặc thứ hai, đẩy một bộ điều khiển xem để đi "trở lại" với một bộ điều khiển giao diện trước đó sẽ không làm việc theo cách người dùng của bạn. Khi bạn đẩy một SongViewController
, nó được thêm vào phần cuối của hướng stack:
LocationViewController -> SongViewController
Nếu bạn sau đó đẩy LocationViewController
lần nữa để đi "trở lại":
LocationViewController -> SongViewController -> LocationViewController
Nếu người dùng chạm vào nút quay lại trong thanh điều hướng, họ sẽ quay lại từ chế độ xem vị trí sang chế độ xem bài hát sang chế độ xem vị trí một lần nữa. (Ngoài ra, nếu bạn tiếp tục làm điều này, mọi "trở lại" và "chuyển tiếp" sẽ thêm vào chuỗi bộ điều khiển chế độ xem ngày càng tăng, điều này có thể dẫn đến sự cố khác.)
Thay vào đó, bạn nên để bộ điều khiển điều hướng quay lại.Nó đặt một nút trong thanh điều hướng cho mục đích đó, nó sẽ xử lý hầu hết các trường hợp sử dụng. Nếu bạn cần điều khiển riêng của mình để quay trở lại, bạn không thể làm điều này trong IB với iOS 5, nhưng bạn có thể làm điều đó theo chương trình với phương thức popViewControllerAnimated:
của bộ điều hướng.
cá nhân, vì bạn đang sử dụng Bảng phân cảnh và phân đoạn, sau đó # 2 là cách làm tốt hơn. –
# 1 có thể hữu ích nếu bạn phải đẩy một bộ điều khiển xem không thể có một segue? tức là đẩy xem điều khiển từ nút tiết lộ của chú thích mapview. – kappa
Mọi thứ đều có thể có một khoảng cách. Không phải tất cả mọi thứ có thể có một * tự động * segue hoàn toàn được thực hiện trong IB (như nút và các tế bào bảng). Nhưng bạn vẫn có thể tạo một segue trong IB bắt đầu từ một bộ điều khiển khung nhìn và sử dụng # 2 để thực hiện nó; đây chính xác là những gì bạn muốn làm cho các nút chú thích bản đồ. – rickster