Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Ilyaa
20 / 20 / 3
Регистрация: 29.04.2012
Сообщений: 214
#1

Вместо navigation bar с table view хочу сделать просто view controller - Программирование iOS

25.08.2014, 18:58. Просмотров 900. Ответов 1
Метки нет (Все метки)

добрый вечер.

В xcode есть стандартный темплейт с navigation controller, но там по дефолту table view controller (master controller) и view controller (detail).

А мне надо убрать table и сделать два view. Но в таком случае убирается дефолтный navigation controller в table controller и я не знаю как мне задать кнопку для перемещения между контроллерами.

это получается, когда точка входа программы - navigation controller (дефолтная точка входа)https://docs.google.com/file/d/0B-RR...5ndnRRb2c/edit

это - схема. справа - это то, что я хочу видеть и чтобы кнопка 'edit' вела дальше.
https://drive.google.com/?tab=mo&authuser=0#my-drive

Если я точку входа(стрелку входа) переведу на нужный мне main view controller , то будет ошибка

Bash
1
2
2014-08-25 18:55:59.284 d[6615:60b] -[MainViewController editButton:]: unrecognized selector sent to instance 0x8c9fce0
2014-08-25 18:55:59.289 d[6615:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MainViewController editButton:]: unrecognized selector sent to instance 0x8c9fce0'
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//
//  MainViewController.h
#import <UIKit/UIKit.h>
 
@class ViewController;
 
@interface MainViewController : UIViewController
 
@property (strong, nonatomic) IBOutlet UIButton *editButton;
 
- (IBAction)editButton:(id)sender;
 
@property (strong, nonatomic) ViewController *detailViewController;
 
 
@end
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//
//  MainViewController.m
 
#import "MainViewController.h"
 
#import "ViewController.h"
 
@interface MainViewController ()
 
@end
 
@implementation MainViewController
 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
 
    self.detailViewController = (ViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];
 
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
 
#pragma mark - Navigation
 
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
   
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
 
- (void) editButton:(id)sender {
    
    /*NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];
    
    ViewController *nvc = [[ViewController alloc] init];
    [viewControllers replaceObjectAtIndex:0 withObject:nvc];
    [self.navigationController setViewControllers:viewControllers];*/
 
//тут несколько попыток
   
    ViewController* nextWindow = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    [self.navigationController setViewControllers:[NSArray arrayWithObject:_detailViewController] animated:YES];
}
 
 
@end

Сейчас он ругается вот так
Bash
1
2014-08-25 19:03:28.448 d[6856:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'
И так
Bash
1
2014-08-25 19:06:52.597 d[7004:60b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM replaceObjectAtIndex:withObject:]: index 0 beyond bounds for empty array'
В обоих случаях плохо память выделаю/не заполняю, верно? Как это сделать грамотно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 18:58     Вместо navigation bar с table view хочу сделать просто view controller
Посмотрите здесь:
По нажатию кнопки на View Controllere открыть Table View Controller
Смена Root View Controller в Navigation Controller
Заполнение Table View Controller
Table View Controller не видно ячеек
Вызвать метод View Controller'a из другого View Controller'a Objective-C
Navigation controller (UITableviewController вместо UIViewController)
Objective-C Жесты + View Controller
View Controller Scene
Работа с view controller в xcode 6
push notification переход на нужный view controller Objective-C
Воспроизведение видео AV Kit Player View Controller Swift
Table View Cell

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
25.08.2014, 19:17     Вместо navigation bar с table view хочу сделать просто view controller #2
Если делаете через сториборд:
для начала проверьте, выставлен ли первый вьюконтроллер как рутовый для навигации. Дальше присвойте ему StroboardID, к примеру "ViewController". Потом замените
Objective-C
1
2
ViewController* nextWindow = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    [self.navigationController setViewControllers:[NSArray arrayWithObject:_detailViewController] animated:YES];
на
Objective-C
1
2
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
    [self.navigationController pushViewController:vc animated:YES];
Думаю и ошибки пропадут.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru