如何在按下按钮时更改控制器,iOS?

时间:2013-03-10 18:50:52

标签: ios uiviewcontroller delegates navigation

我在.xib文件中放了一个导航栏和一个Bar Button Item。

我为我的按钮创建了一个动作,我连接了它,动作如下:

- (IBAction)AddAlert:(id)sender {

    self.addReminderViewController =[[AddReminderViewController alloc]initWithNibName:@"AddReminderViewController" bundle:nil];
    [self.navigationController pushViewController:addReminderViewController animated:YES];
}

其中AddReminderViewController是我想要导航到的控制器。

我的ViewController.h如下所示:

#import <UIKit/UIKit.h>

@class AddReminderViewController;

@interface ViewController : UIViewController <UITableViewDelegate , UITableViewDataSource>

@property (strong, nonatomic) AddReminderViewController *addReminderViewController;

@property (strong,nonatomic) NSArray *listData;

- (IBAction)AddAlert:(id)sender;

@end

我声明@class AddreminderViewController以便我可以在那里导航,并在.m文件中合成属性。

然而,当我按下按钮时没有任何反应。它没有崩溃!它在任何地方都没有导航我。我应该对AppDelegate进行任何更改吗?我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

当您使用self.addReminderViewController初始化控制器但稍后您不使用self时,使用self确保正确设置了对象保留计数。

在您的代码中

[self.navigationController pushViewController:addReminderViewController animated:YES];

尝试更改上述行并使用addReminderViewController添加自己,这可能会解决您的问题

[self.navigationController pushViewController:self.addReminderViewController animated:YES];
相关问题