【问题标题】:How to change controller when pressing a button , iOS?按下按钮时如何更改控制器,iOS?
【发布时间】:2013-03-10 18:50:51
【问题描述】:

我在我的 .xib 文件中添加了一个导航栏和一个栏按钮项。

我为我的按钮创建了一个动作,我连接了它,动作看起来像这样:

- (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 进行任何更改吗?我在这里错过了什么?

【问题讨论】:

  • 您确定您的 IBAction 已正确连接到按钮的 touch up inside 事件吗?
  • 嗯,它是一个条形按钮项目,我在哪里可以看到你说的选项?在连接检查器中,它只向我显示与操作相关的内容。
  • 是的,在连接检查器中您可以看到,尝试在您的 AddAlert 操作中将参数类型 id 更改为 UIBarButtonItem *
  • 对于我正在使用的条形按钮项目,我只能看到它与 AddAlert Action 的连接。
  • 从放置在导航栏上的项目中获取一个栏按钮项目。连接到我在上面显示的 AddAlert 操作。我认为我应该在我的委托文件中添加一些内容,以使这种导航能够正常工作,但我不确定

标签: ios uiviewcontroller delegates navigation


【解决方案1】:

当您使用self.addReminderViewController 初始化控制器但后来您在不使用self 的情况下进行广告时,使用self 确保对象保留计数设置正确。

在你的代码中

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

尝试更改上面的行并使用addReminderViewController 添加self,它可能会解决您的问题

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2010-12-04
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多