UITableView внутри UINavigationController - PullRequest
0 голосов
/ 15 марта 2012

Я создаю UITableView внутри моего UINavigationController, и проблема в том, что таблица покрывает его заголовок.Это мой класс:

.h:

@interface SecondViewController : UINavigationController

@end

И часть .m:

- (id)init
{
    self = [super init];
    if (self) {

    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    UITableView *mmm = [[UITableView alloc] initWithFrame:CGRectMake(0, 0,320, 100) style:UITableViewStylePlain];

[self.view addsubview:mmm];


}

Что я делаю не так?

Ответы [ 3 ]

5 голосов
/ 15 марта 2012

Я не думаю, что это то, что вы хотите сделать.

Документация для UINavigationController не рекомендует создавать подклассы. Вместо этого я думаю, что вы хотите создать UITableViewController и поместить этот контроллер в стек контроллера навигации (или, если это контроллер корневого представления, затем инициализировать контроллер навигации с этим UITableViewController.

MyTableViewController *tableController = [[MyTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableController];
//  now add the navController's view to the view hierarchy, however you intend to do that.
1 голос
/ 15 марта 2012

Вы создаете свой фрейм для UITableView с верхней левой точкой 0,0 на экране.Это поднимает ваш стол настолько высоко, насколько это возможно.Чтобы исправить это, вы можете сделать одно из двух:

1) Построить View в IB и подключить его к контроллеру.В IB вы можете указать менеджеру макета, что у вас отображаются различные элементы управления, такие как строка состояния, контроллер навигации или панель вкладок.Их наличие позволит вам точно разместить UITableView.

2) Измените Rect, используемый для размещения вашего табличного представления на странице.Вам нужно будет добавить ко второму аргументу, чтобы переместить кадр вниз.Вы можете играть с тем, сколько вы добавляете, пока табличное представление не будет там, где вы хотите.Это число представляет пиксели, и чем больше число, тем ниже на левом верхнем углу будет расположен элемент управления.

Удачи!

1 голос
/ 15 марта 2012

Кадр вашего UITableView начнется с начальной точки 0.0, 0.0 - это точка начала вашего UINavigationController.Просто измените

CGRectMake(0, 0,320, 100)

на

CGRectMake(0, 44,320, 100)

К вашему сведению, не рекомендуется создавать подкласс UINavigationCantroller.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...