Trang Chủ Xã hội Truyền thông Làm thế nào để Thêm một Nút Khi Trình điều khiển Xem được Thay thế trong Ứng dụng iOS của bạn

Làm thế nào để Thêm một Nút Khi Trình điều khiển Xem được Thay thế trong Ứng dụng iOS của bạn

Video: Hướng dẫn khôi phục các ứng dụng hệ thống lỡ may bị xóa mất trên iPhone 2025

Video: Hướng dẫn khôi phục các ứng dụng hệ thống lỡ may bị xóa mất trên iPhone 2025
Anonim

Bởi vì bạn có thể thay bộ điều khiển chế độ xem trong ứng dụng iOS của bạn bằng một ứng dụng mới - mặc dù một từ cùng một lớp cơ sở - trình điều khiển chế độ xem mới đã không có quyền truy cập vào các nút nó cần để hiển thị hoặc popover cần loại bỏ. May mắn thay, folks của Apple cung cấp một nơi hoàn hảo để làm điều đó.

Khi một tập tin được kích hoạt - bạn làm gì khi gõ mục nhập Bảng - nhưng trước khi trình điều khiển mới trình bày chế độ xem của nó, thời gian chạy tập lệnh sẽ gọi phương thức của trình điều khiển chế độ xem hiện tại để nó có thể truyền dữ liệu tới trình điều khiển chế độ xem đó về để được hiển thị.

Điều đó có nghĩa là bạn có thể truyền thông tin nút tới trình điều khiển chế độ xem mới ngay cả khi nó được khởi chạy. Sau đó, prepareForSegue: sender:, cả hai sẽ gán nút để được sử dụng trong viewDidLoad và loại bỏ bộ điều khiển chế độ xem.

prepareForSegue: sender: là một phương pháp điều khiển chế độ xem thông báo cho trình điều khiển chế độ xem rằng một tập tin sắp được thực hiện. segue là đối tượng UIStoryboadSegue, và nó chứa thông tin về bộ điều khiển chế độ xem có liên quan đến việc nối tiếp.

người gửi là đối tượng gây ra việc chia tay, nhưng bạn sẽ không cần phải sử dụng nó ở đây.

Bạn thêm đoạn code vào phương thức prepareForSegue: sender: để tạo cho DestinationController UisplitViewController delegate và gán các thuộc tính popOverButton và masterPopoverController.

Bạn cũng sẽ loại bỏ popover khi nó hiện diện để người dùng không phải chạm vào chế độ xem để thoát khỏi nó.

Để làm tất cả điều đó, thêm mã này vào MasterViewController. m.

- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender {nếu ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {DetailViewController * currentDetailViewController; ifControls lastObject isKindOfClass: [UINavigationController class])) currentDetailViewController = (DetailViewController *) ((UINavigationController *) [tự phân tách viewController ViewControllers lastObject]). topViewController; else currentDetailViewController = [tự.splitViewController. viewControllers lastObject]; nếu (currentDetailViewController masterPopover Controller! = nil) [currentDetailViewController. masterPopover Controller dismissPopoverAnimated: YES]; DetailViewController * destinationDetailViewController; nếu ([. topViewController; else destinationDetailViewController = segue. destinationViewController; tự. splitViewController. delegate = destinationDetailViewCon troller; destinationDetailViewController. popOverButton = currentDetailViewController. popOverButton; destinationDetailViewController. masterPopoverController = currentDetailViewController. masterPopoverController;}}

Bạn bắt đầu bằng việc tìm kiếm bộ điều khiển Detail View hiện tại vì nó có nút và tính năng popover mà trình điều khiển chế độ xem mới cần.

Mã này có vẻ phức tạp hơn nó. Trước tiên, bạn kiểm tra xem liệu bạn đang chạy trên iPad hay không. Nếu bạn đang có, bạn sẽ có được bộ điều khiển Xem chi tiết hiện tại bằng cách truy cập danh sách bộ điều khiển xem trong mảng viewController của splitViewController. May mắn thay, lớp UIViewController có một thuộc tính splitViewController để làm cho bạn dễ dàng.

Sau đó bạn kiểm tra xem bộ điều khiển Điều khiển có nằm trong mảng viewControllers hay không, nếu có thì bạn sẽ có được topViewController của điều khiển điều khiển (điều khiển chế độ xem hiện tại); nếu không, bạn chỉ cần sử dụng bộ điều khiển trong mảng. (Bạn sẽ nhận thấy rất nhiều sự đúc đang diễn ra ở đây)

if ([[viewControllers & # x2028; lastObject]

isKindOfClass: [UINavigationController & # x2028; class]]) 

currentDetailViewController = (RTDetailViewController *)

(UINavigationController *)

[tự. splitViewController. viewControllers

lastObject]). topViewController; else

currentDetailViewController = & # x2028; [tự. splitViewController. viewControllers

lastObject];

Tiếp theo, nếu bạn thấy một popover, bạn muốn loại bỏ nó. Bạn kiểm tra để xem liệu một trình điều khiển popover (đó là lý do tại sao bạn phải làm cho thuộc tính có thể truy cập được bằng cách di chuyển nó vào tệp tiêu đề.)

if (currentDetailViewController. MasterPopoverController

! = Nil) 

[currentDetailViewController. MasterPopoverController > deletePopoverAnimated: YES];

Tiếp theo, bạn tìm thấy bộ điều khiển đích mới (cái được chuyển sang) sử dụng logic tương tự như logic mà bạn đã sử dụng để tìm bộ điều khiển Detail View hiện tại

if ([segue. destinationViewController < & # x2028; isKindOfClass: [UINavigationController

lớp]]) destinationDetailViewController =

(DetailViewController *) ((UINavigationController *) 

segue destinationViewController) topViewController; khác

destinationDetailViewController =

.. Sau đó, bạn chỉ cần thiết lập delegate Viewer Controller cho bộ điều khiển view mới, vì vậy nó sẽ nhận được splitViewController: willHideViewController: withBarButtonItem: forPopoverController: a d splitViewController: willShowViewController: invalidatingBarButtonItem: tin nhắn.

tự. splitViewController. delegate = destinationDetailViewController;

Cuối cùng, bạn gán các thuộc tính popOverButton và masterPopOverController trong bộ điều khiển chế độ xem mới.

destinationDetailViewController. popOverButton =

currentDetailViewController. popOverButton;

destinationDetailViewController. masterPopoverController =

currentDetailViewController. masterPopoverController;

Phải thừa nhận, điều này chỉ loại bỏ popover và gán các thuộc tính, nhưng không làm bất cứ điều gì để hiển thị nút. Điều đó thực sự được thực hiện trong viewDidLoad. 

Bạn cũng có thể chỉ định kích thước của cửa sổ bật lên bằng cách gán một giá trị cho thuộc tính prefferedContentSize. Bạn nên lưu ý rằng kích thước thực tế có thể được giảm xuống để bật lên phù hợp trên màn hình và popover không chồng chéo một bàn phím khi bàn phím được trình bày. Bạn có thể thấy mã mà thực hiện điều đó trong phương thức awakeFromNib của MasterViewController.

- (void) awakeFromNib {if ([[UIDevice currentDevice]

userInterfaceIdiom == UIUserInterfaceIdiomPad)

& # x2028; {bản thân. xóaSelectionOnViewWillAppear = KHÔNG;

tự. Các tin nhắn awakeFromNib được gửi đến một đối tượng đã được instantiated từ storyboard sau khi tất cả các đối tượng đã được nạp và khởi tạo.. Khi tin nhắn được gửi đi, tất cả kết nối ra và kết nối hành động đã được thiết lập.

Nếu bạn quyết định bỏ qua lời khuyên ở đây và không loại bỏ trình điều khiển bật lên, nhấn bên ngoài cửa sổ bật lên sẽ làm cho popover bị loại. Tuy nhiên, bạn có thể cho phép người dùng tương tác với các chế độ xem được chỉ định và không loại bỏ popover bằng cách sử dụng thuộc tính passthroughViews (mặc dù bạn sẽ không làm điều đó ở đây). Sau đó, bạn phải tự mình loại bỏ bản thân. 

Làm thế nào để Thêm một Nút Khi Trình điều khiển Xem được Thay thế trong Ứng dụng iOS của bạn

Lựa chọn của người biên tập

Làm thế nào để Thiết lập nhân viên trong QuickBooks Quá trình biên chế nâng cao - núm vú

Làm thế nào để Thiết lập nhân viên trong QuickBooks Quá trình biên chế nâng cao - núm vú

Sau khi bạn thành lập công ty của bạn thông tin cho bảng lương trong QuickBooks, bạn đã sẵn sàng để thiết lập nhân viên cho biên chế. Là một phần của quy trình Thiết lập biên chế nâng cao, QuickBooks hiển thị trang web nơi bạn có thể thêm nhân viên của mình. Bạn cũng có thể thêm nhân viên bằng cách hiển thị Trung tâm Nhân viên. (Chọn lệnh Employee → Employee Center và nhấp chuột ...

Làm thế nào để Thiết lập biểu đồ Tài khoản QuickBooks 2012 - núm vú

Làm thế nào để Thiết lập biểu đồ Tài khoản QuickBooks 2012 - núm vú

Biểu đồ tài khoản Danh sách trong QuickBooks 2012 là danh sách các tài khoản bạn sử dụng để phân loại thu nhập, chi phí, tài sản, nợ phải trả và số vốn chủ sở hữu của chủ sở hữu. Nếu bạn muốn xem chi tiết đơn hàng cụ thể của dữ liệu tài chính trên báo cáo, bạn cần một tài khoản cho chi tiết đơn hàng đó. Nếu bạn muốn ngân sách ...

Cách Thiết lập Máy in để in QuickBooks 2015 Hóa đơn - núm vú

Cách Thiết lập Máy in để in QuickBooks 2015 Hóa đơn - núm vú

Nếu bạn dự định in hóa đơn từ QuickBooks 2015, bạn chỉ cần cài đặt máy in hóa đơn một lần, nhưng bạn cần phải chỉ rõ một số quy tắc in ấn chung về hoá đơn. Các quy tắc này cũng áp dụng cho các bản ghi nhớ tín dụng và các đơn đặt hàng, bằng cách này. Để cài đặt máy in của bạn để in hóa đơn, làm theo các bước sau: Chọn ...

Lựa chọn của người biên tập

Hình ảnh Các chế độ phát trên một Canon EOS 70D - núm vú

Hình ảnh Các chế độ phát trên một Canon EOS 70D - núm vú

Một trong những điều tốt nhất về Canon EOS 70D của bạn có thể xem ảnh ngay sau khi bạn chụp chúng. Không còn đoán xem bạn có bị bắn mà bạn muốn hay cần thử lại; không còn lãng phí tiền bạc khi phát triển và in những bức ảnh bốc mùi. Để chuyển máy ảnh sang chế độ Phát lại, chỉ cần ...

Lựa chọn của người biên tập

Cách xem tab Thông báo của bạn trên Twitter - những con cần

Cách xem tab Thông báo của bạn trên Twitter - những con cần

Xem ai đang tương tác với bạn trên Twitter trực tiếp qua @replies và @mentions (Tweets để đáp ứng hoặc nói chung đề cập đến người dùng cá nhân), các mục yêu thích (cách thừa nhận hoặc đánh dấu trang Tweets) và retweets (chia sẻ nội dung đã được đăng bởi một người dùng Twitter khác). Yêu thích Nhấn vào biểu tượng ngôi sao, hoặc nút Video yêu thích, thêm vào Tweet của bạn ...

Sai lầm Twitter # 1: @reply versus @mention - núm vú

Sai lầm Twitter # 1: @reply versus @mention - núm vú

Mọi người dùng Twitter - mới và cũ - đã trở thành nạn nhân của sự nhầm lẫn giữa @reply versus @mention. Khi nhà phát triển thịnh vượng và nhà chiến lược nội dung Anum Hussein giới thiệu 21 mẹo đăng bài xã hội trên hội nghị INBOUND hàng năm, mẹo để hiểu sự khác biệt giữa @reply và @mention là số một ...

Mẹo vặt để xây dựng sự hiện diện của cá nhân trên Twitter

Mẹo vặt để xây dựng sự hiện diện của cá nhân trên Twitter

Twitter ban đầu phổ biến để giúp các cá nhân giữ liên lạc với bạn bè và người quen của họ qua các cập nhật nhỏ. Nhiều Twitterers cá nhân vẫn có xu hướng sử dụng Twitter theo cách này, cập nhật một vòng tròn gần gũi của bạn bè về những suy nghĩ và những sự kiện xảy ra trong cuộc sống của họ. Theo thời gian, bạn có thể theo kịp với những người mà bạn có thể không liên hệ ...