按下按钮时如何更改控制器,iOS?
Posted
技术标签:
【中文标题】按下按钮时如何更改控制器,iOS?【英文标题】:How to change controller when pressing a button , 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 操作。我认为我应该在我的委托文件中添加一些内容,以使这种导航能够正常工作,但我不确定
【参考方案1】:
当您使用self.addReminderViewController
初始化控制器但后来您在不使用self 的情况下进行广告时,使用self
确保对象保留计数设置正确。
在你的代码中
[self.navigationController pushViewController:addReminderViewController animated:YES];
尝试更改上面的行并使用addReminderViewController
添加self,它可能会解决您的问题
[self.navigationController pushViewController:self.addReminderViewController animated:YES];
【讨论】:
以上是关于按下按钮时如何更改控制器,iOS?的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIPageControl 在按钮按下时发送数据和更改页面