从侧面菜单中查看主ViewController

时间:2014-09-16 21:04:52

标签: ios objective-c uiviewcontroller ios8 uistoryboardsegue

我正在开发一个可以在GitHub找到的应用程序,我无法弄清楚如何使用滑动侧菜单。想法是主ViewController将更改为在侧面菜单中选择的不同视图(没有后退箭头)然后让主ViewController滑回。我可以让ViewController滑动,但我无法得到segue对。当我从侧边菜单中按下“日历”按钮时,我正在尝试从'ViewController.m'中删除'CalendarView.XIB'。

ViewController.m:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row == 0) {
        NSLog(@"Pressed 0");
        BlogView *blogView = [[BlogView alloc] init];
        [self.puView addSubview:blogView];
        [self hideMenu];
    }
    else if (indexPath.row == 1) {
        NSLog(@"Pressed 1");
        TwitterView *twitView = [[TwitterView alloc] init];
        [self hideMenu];
        [self.puView addSubview:twitView];
    }
    else if (indexPath.row == 2) {
        NSLog(@"Pressed 2");
        PowerView *pschoolView = [[PowerView alloc] init];
        [self hideMenu];
        [self.puView addSubview:pschoolView];
    }
    else if (indexPath.row == 3) {
        NSLog(@"Pressed 3");
        CalendarView *calView = [[CalendarView alloc] init];
        [self.puView addSubview:calView];
        [self hideMenu];
    }
    else {
        NSLog(@"Error");
        //ErrorView *errorV = [[ErrorView alloc] init];
        //[self hideMenu];
        //[self.puView addSubview:errorV];
    }
}

2 个答案:

答案 0 :(得分:2)

您尚未加载笔尖,以下是日历的示例:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"CalendarView" owner:self options:nil];

    if (indexPath.row == 0) {
        ....
    }
    else if (indexPath.row == 3) {
        NSLog(@"Pressed 3");
        CalendarView *calView = [subviewArray objectAtIndex:0];
        [self.puView addSubview:calView];
        [self hideMenu];
    }
    else {
        NSLog(@"Error");
    }
}

对每个菜单项都这样做。

答案 1 :(得分:0)

如果您使用故事板控件手动创建segues并设置标识符,则使用

调用它们
[self performSegueWithIdentifier:@"IDENTIFIER" sender:nil];

我能想到的最好:)