2015-01-16 22 views
7

Tôi đã cố gắng tạo một ứng dụng Apple Watch dựa trên trang.Ứng dụng Apple Watch dựa trên trang động

Theo như tôi thấy, bạn có thể tạo số trang cố định cho ứng dụng của mình trong bảng phân cảnh.

Vì vậy, tôi tự hỏi liệu có cách nào để tự động tạo các trang cho ứng dụng của bạn dựa trên dữ liệu được tải không?

I.e: một ứng dụng báo trong đó người dùng có thể vuốt sang trái và phải để chuyển sang các bài viết khác nhau.

Cảm ơn

+0

bạn có giải pháp không ?? –

+0

@BandishDave Tôi chưa có cơ hội quay trở lại vấn đề này nhưng lần cuối tôi kiểm tra, không có giải pháp hoàn hảo nào. –

Trả lời

10

Bạn có thể trình bày điều hướng dựa trên trang từ mã. Bạn có thể chỉ định bao nhiêu trang như bạn muốn, nhưng những trang phải được thiết kế theo Storyboard

func presentControllerWithNames(names: [AnyObject], contexts: [AnyObject]?) // modal presentation of paged controllers. contexts matched to 

Ví dụ

hiện Page giao diện cho các đối tượng. Trang hiển thị mã này cho mọi đối tượng

let objects = ["1", "2", "3", "4", "5"] 
let controllers = Array(count: objects.count, repeatedValue: "Page") 
presentControllerWithNames(controllers, contexts: objects) 

Giao diện khác nhau khác nhau cho đối tượng khác nhau.

let objects = [1, 2, 3, 4, 5] 
let controllers = objects.map { object in object % 2 == 0 ? "Even-Page" : "Odd-Page" } 
presentControllerWithNames(controllers, contexts: objects) 
+0

cảm ơn vì giải pháp, nó hoạt động. Nhưng phương pháp thực sự hiển thị chế độ xem dựa trên trang, do đó có nút Hủy trên màn hình. Có cách nào chúng tôi có thể xóa nút Hủy đó và thực hiện nút riêng của chúng tôi thay thế không? –

+0

Không, không có. Ít nhất tại thời điểm này @LeonNguyen –

+0

@LeonNguyen Là giải pháp tạm thời, bạn có thể gọi [self setTitle: ""] trên WKInterfaceController mà bạn trình bày. Điều này sẽ thay đổi nút Cancel thành một chuỗi rỗng nhưng nó sẽ tiếp tục được lựa chọn không may. Cũng trong bản beta 5 hiện tại, bạn sẽ thấy nút Hủy trong một giây trong khi bộ điều khiển xuất hiện. Để làm cho nó hoàn toàn vô hình, bạn phải đặt trường "Title" trong IB thành một chuỗi ký tự trống. – ggould75

7

Trong chế độ điều khiển giao diện gốc của phương thứcWayContext, sử dụng phương thức lớp WKInterfaceController.reloadRootControllersWithNames.

let objects = ["1", "2", "3", "4", "5"] 
let controllers = Array(count: objects.count, repeatedValue: "Page") 
WKInterfaceController.reloadRootControllersWithNames(controllers, contexts: objects) 
+0

Nó không hoạt động đối với tôi. Tôi có cần thêm Bộ điều khiển giao diện theo cách thủ công trong bảng phân cảnh không? –

0

Tôi không thể nhận được các câu trả lời này vì tôi thiếu một phần quan trọng, bạn cần tạo bộ điều khiển giao diện thứ hai với mã định danh của nó làm tên bộ điều khiển. Xem tại đây để biết thêm thông tin: https://stackoverflow.com/a/28955247/945247

+0

Bạn không thấy rằng tôi không? – Leon

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