Objective c 单击横幅按钮项目时应用程序崩溃

Objective c 单击横幅按钮项目时应用程序崩溃,objective-c,xcode,uitoolbar,Objective C,Xcode,Uitoolbar,我的应用程序底部有一个旋转横幅,显示广告,当用户单击旋转时,带有简单网络视图的viewcontroller和顶部的工具栏显示的是特定于该横幅的网页。这一切都很好,除了我需要一个关闭按钮在工具栏上。由于某种原因,在我将关闭按钮链接到一个操作之后,当单击该操作时,应该在日志中显示“关闭”。我运行应用程序并单击按钮,出现错误访问错误,错误日志中没有消息 这是显示带有webview的viewcontroller的位置。它是从应用程序委托中的方法调用的,该方法可以从应用程序中的任何位置访问 BannerV

我的应用程序底部有一个旋转横幅,显示广告,当用户单击旋转时,带有简单网络视图的viewcontroller和顶部的工具栏显示的是特定于该横幅的网页。这一切都很好,除了我需要一个关闭按钮在工具栏上。由于某种原因,在我将关闭按钮链接到一个操作之后,当单击该操作时,应该在日志中显示“关闭”。我运行应用程序并单击按钮,出现错误访问错误,错误日志中没有消息

这是显示带有webview的viewcontroller的位置。它是从应用程序委托中的方法调用的,该方法可以从应用程序中的任何位置访问

BannerViewer* viewer = [BannerViewer alloc];
[viewer setUrl:db.WEBurl];
[_window addSubview: viewer.view];
BannerViewer.h

@interface BannerViewer : UIViewController {
        IBOutlet UIWebView* webView;
        IBOutlet UIBarButtonItem* close;
        IBOutlet UINavigationBar* navBar;
        NSURL *url;
    }

    @property(nonatomic,strong)IBOutlet UIWebView* webView;
    @property(nonatomic,strong)NSURL *url;
    @property(nonatomic,strong)IBOutlet UIBarButtonItem* close;
    @property(nonatomic,strong)IBOutlet UINavigationBar* navBar;
    -(IBAction)closeWindow:(id)sender;
    @end
BannerViewer.m

-(IBAction)closeWindow:(id)sender{
    NSLog(@"close");
}
提前谢谢你的帮助

BannerViewer* viewer = [BannerViewer alloc];
分配对象后,需要通过调用指定的初始化器对其进行初始化。对于以编程方式实例化的
UIViewController
的子类,您需要如下内容:

BannerViewer* viewer = [[BannerViewer alloc] initWithNibName:nil bundle:nil];

我也遇到了这个问题

为了修复它,我将新的UIViewController设置为一个属性

@property (nonatomic, strong) ThirdViewController *theSecondView;
基于xcode提供给我的少量信息,这看起来像是内存问题。似乎正在发生的是,当按下按钮时,视图被创建,但ARC在创建后不久就会释放它在内存中的位置,因此单击按钮只会使Xcode抛出一个合适的值


如果使用了strong属性,则新视图在内存中会保留一个更强大的引用,直到父视图控制器也被释放后才会释放。

不,仍然会崩溃,很难知道通过IB链接时在何处放置断点以获取更多信息