2013-03-31 3 views
0

enter image description here Я искал и экспериментировал в этом какое-то время, но я просто не могу понять, что я делаю неправильно.UITableView в UInavigationController не работает

Я хочу сделать приложение с помощью меню, и из этого меню вы можете добраться до TableViewcontroller с помощью заголовка. Я узнал, что для того, чтобы получить эту строку заголовка, вам нужно «вставить» UITableViewController в UINavigationController. вот где я застрял.

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

в моем AppDelegate.m у меня есть:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    TableViewController *tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:tableView]; 
    self.window.rootViewController = navController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

в моем файле AppDelegate.h Я Есть:

@interface AppDelegate : UIResponder <UIApplicationDelegate>{ 
    UINavigationController *navcontroller; 
} 

@property (strong, nonatomic) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UINavigationController *navController; 

У меня есть 2 классерским, UITableViewController и NavigationView.

В UITableViewController, я сделал массив называется tableRows:

tableRows = [[NSArray arrayWithObjects:@"1", @"2", nil] init]; 

numberOfSectionsInTableView устанавливается в 1 и numberOfRowsInSection устанавливается как return tableRows.count;

Я оставил мой NavigationView.m нетронутым, за исключением того, что я попытался установить в нем заголовок.

в моем NavigationView.xib, я попытался установить соединение между UITableViewController и UINavigationController.

  • Я добавил NSObject, и изменил свой класс AppDelegate
  • я заменил View для UIWindow и соединил свойство окна из моего AppDelegate.h к нему
  • Я добавил UINavigationController и соединив его с navController от моего AppDelegate.h.
  • и, наконец, я сменил класс с RootView с UINavigationController на UITableViewController.

Теперь моя проблема связана с или без соединений в IB, независимо от того, что я пытаюсь изменить в своей таблице или в заголовке, она не изменяется при запуске приложения.

Кто-нибудь знает, что я делаю неправильно? Я использую xcode 4.6, поэтому многие обучающие программы, которые я проверил, не очень полезны, потому что они созданы со старыми версиями xcode. пожалуйста, помогите мне, спасибо заранее!

+0

Если возможно, возьмите еще один ViewController с XIB и добавьте tableView внутри ViewController. Возможно, вы не можете напрямую добавить этот tableView. – Nirav

+0

Infortood невозможно. Когда я это делаю, это также вызывает проблему: «загрузился« ViewController »nib, но не была установлена ​​точка просмотра. ';' –

+0

его не правильно загрузили данные? –

ответ

1

enter image description here в вас AppDelegate заменить эту строку

TableViewController *tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 

с этим

TableViewController *tableView = [[TableViewController alloc] initWithStyle:UITableViewStylePlain]; 
+0

извините, ничего не изменилось –

+0

любые другие идеи @Dipen? –

+0

Я нашел решение для него. проверьте это, вы инициализируете UITableViewController, а не свой класс TableViewController. –

0

Вы не создаете экземпляр TableViewController, но вместо этого UITableViewController так, таким образом, вы не получаете какой-либо из вашего кода казнены. (У вас должно быть предупреждение компилятора для этого в делегате приложения - обязательно прислушайтесь к этим предупреждениям). Точно так же вы не загружаете навигационный навигатор нигде - вы создаете контроллер навигации с таблицей в качестве контроллера корневого представления. Неясно, какова ваша цель для NavigationView, поэтому я не могу дать рекомендации о том, как действовать. Тем не менее, для представления таблицы, измените следующую строку в приложении делегата

TableViewController *tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 

в

TableViewController *tableView = [[TableViewController alloc] init]; 

В табличном просмотре XIb, сделать класс владельца уверен файлом устанавливаются равным класс TableViewController (не UITableViewController). Щелкните правой кнопкой мыши на представлении таблицы и перетащите круги рядом с «источником данных» и «делегировать» владельцу файла. Затем щелкните правой кнопкой мыши владельца файла и убедитесь, что круг рядом с «представлением» связан с табличным представлением. Сохраните, очистите и запустите.

0

Возможно, вам также будет очень полезно проверить бесплатную систему Sensible TableView. Структура примет ваш массив и автоматически сгенерирует все ячейки представления таблицы, одновременно управляя всеми деталями, необходимыми для правильной настройки навигационного контроллера. Надеюсь это поможет.

+0

Спасибо за отзыв! –

+1

Добро пожаловать. – Matt

Смежные вопросы