Как правильно интегрировать InAppSettingsKit с раскадровкой в ​​TabBar? - PullRequest
7 голосов
/ 16 декабря 2011

Я уже некоторое время пытаюсь, но не могу понять, как интегрировать InAppSettingsKit в приложение, которое использует Storyboard и TabBar.

Моя панель вкладок определена в раскадровке, теперь я хочу, чтобы на одной вкладке этот InAppSettingsKit был корневым представлением.Это возможно в конце концов?

Спасибо всем.

Ответы [ 2 ]

6 голосов
/ 08 января 2012

Что ж, после того, как я попробовал разные вещи, я понял, что моя проблема на самом деле в том, что я поместил все IASK-вещи в статическую библиотеку (и у меня не было пакета настроек). Переместив весь код и перья в тот же проект, что и MainStoryboard, он работал, добавив контроллер TableView к моей раскадровке и установив его собственный класс IASKAppSettingsViewController.

2 голосов
/ 24 апреля 2013

В качестве альтернативы, если вам нужны обработчики кнопок и другой пользовательский код, выполните следующие действия:

  1. Создайте класс, производный от UITableViewController
  2. Измените файл заголовка для получения из IASKAppSettingsViewController <IASKSettingsDelegate> Удалите все методы, кроме initWithCoder и протокола settingsViewControllerDidEnd (или сделайте вызовы super).Это сделано для того, чтобы код UITableVC по умолчанию не перекрывал функциональность IASK.Не забудьте вставить self.delegate = self; в initWithCoder, чтобы заставить кнопки работать.

    //SettingsViewController.h
    #import "IASKAppSettingsViewController.h"
    
    @interface SettingsViewController : IASKAppSettingsViewController <IASKSettingsDelegate>
    @end
    
    
    //SettingsViewController.m
    // ...
    - (id)initWithCoder:(NSCoder *)aDecoder
    {
        self = [super initWithCoder:aDecoder];
        if (self) {
            self.delegate = self;
        }
        return self;
    }
    
    #pragma mark -
    #pragma mark IASKAppSettingsViewControllerDelegate protocol
    - (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController*)sender {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    
  3. Установите пользовательский класс представления таблицы в раскадровке для вашего класса

...