标签: iboutlet

在Objective-C中分配IBOutlet

代码生成器Accessorizer有一个选项来分配IBOutlets而不是保留它们.例如,比较这两个生成的行:

@property(nonatomic,retain)IBOutlet UIImageView *backgroundView;
@property(nonatomic,assign)IBOutlet UIImageView *backgroundView;
Run Code Online (Sandbox Code Playgroud)

为什么我要分配IBOutlets,同时保留所有其他属性?

objective-c iboutlet

6
推荐指数
1
解决办法
7387
查看次数

检测使用UIButton阵列按下哪个按钮

我有一个像这样的UIButton数组:

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *btn_Impact_Collection;
Run Code Online (Sandbox Code Playgroud)

我有这个功能:

- (IBAction)impactAction:(id)sender;
Run Code Online (Sandbox Code Playgroud)

在XIB文件中,我有九个按钮,每个按钮都连接到带有引用插座集合的btn_Impact_Collection数组.此外,每个按钮的Touch_inside属性连接到函数ImpactAction.

现在,当单击一个按钮时,将调用ImpactAction函数,但在此函数内,我如何知道按下了哪个按钮?

在此先感谢您的回答!

uibutton iboutlet ios

6
推荐指数
2
解决办法
2万
查看次数

IBOutlet Work的readonly属性是否优先?

在我继承的代码中,我看到了以下内容:

@property (readonly) IBOutlet UIImageView * bgImage;
Run Code Online (Sandbox Code Playgroud)

当我期望保留记忆模型如:

@property (readonly, retain) IBOutlet UIImageView * bgImage;
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么第一个属性定义工作而不会引起问题.

此外,还有一个releasedealloc,如你所料:

-(void)dealloc
{
   [_bgImage release];
   [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

如果有人能为此提出解释,我将不胜感激.我已经与原始开发人员交谈,他试图编写更简洁的代码,这就是为什么他retain在内存模型中遗漏了(似乎没必要).

我想知道IBOutlet是否基本上被视为ivar IBOutlet语句,因为它只是readonly(没有使用setter,因此默认的assign memory模型没有区别).

如果永远不会期望IBOutlet发生变化,那么使用没有内存模型的readonly属性实际上是定义属性的更好方法吗?

cocoa-touch memory-management objective-c iboutlet

6
推荐指数
1
解决办法
1394
查看次数

为什么我的IBOutlet在ARC下发布?

问题

IBOutlet在我有机会使用之前就已发布.

我想要的是

我想从我的app委托访问导航控制器,以便我可以重新加载表视图.

我的设置

我有:

  • 在目标设置中设置为主界面的Main.xib
  • 导航控制器的IBOutlet作为我的app代表上的ivar
  • 这个IBOutlet连接到Main.xib中正确的导航控制器
  • App Delegate在xib中实例化,但未设置为File的所有者

我正在使用ARC,Xcode 4.3.2和iOS5.1

我试过的

  • 更改部署目标
  • 在dealloc上为导航控制器,app委托设置一个断点 - 它们从未被调用过
  • 阅读我在ARC和IBOutlets上可以找到的一切 - 似乎没有任何东西与我正在做的事情相矛盾
  • 创建一个只需要最少类的新项目 - 我看到完全相同的问题

KPAppDelegate.h

@interface KPAppDelegate : UIResponder <UIApplicationDelegate> {
    IBOutlet  KPBrowseExpensesNavigationController *nc;
}

@property (strong) IBOutlet KPBrowseExpensesNavigationController *nc;
Run Code Online (Sandbox Code Playgroud)

KPAppDelegate.m

@implementation KPAppDelegate

@synthesize nc;

-(void)setNc:(KPBrowseExpensesNavigationController *)nc_ {
    nc = nc_; // This gets called on view load and nc gets set.
}

...snip...

// This is called about 5 seconds after app startup
-(void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects { …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch iboutlet ios automatic-ref-counting

6
推荐指数
1
解决办法
300
查看次数

iOS >> prepareForSegue >> IBOutlet更新不起作用?

我正在尝试从prepareForSegue方法中的第一个VC更新第二个VC中的Label.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    MYSecondViewController* secondVC = (MYSecondViewController*)segue.destinationViewController;
    secondVC.titleLabel.text = @"First VC Says: You Are Second!!"; //This doesn't work
    secondVC.dataPassString = @"First VC Says: You Are Second!!"; //This works + secondVC viewDidLoad
}
Run Code Online (Sandbox Code Playgroud)

如果我直接更新Label,它就不起作用.如果我更新一个字符串属性,然后将其分配给第二个VC viewDidLoad中的标签,它确实有效.

这是否意味着在prepareForSegue调用后第二个VC viewDidLoad方法尚未被调用?

是否调用了一些init方法(因此NSString对象可以通过)?如果是的话,哪一个?

有没有办法从第一个VC更新第二个VC中的IBOutlets?

properties uiviewcontroller iboutlet ios uistoryboardsegue

6
推荐指数
2
解决办法
1005
查看次数

ViewController的出口视图首先是非零,然后从bundle加载时为nil

我正在UIViewController从一个捆绑中加载一个initWithNibName:bundle:.如果我在其中设置断点,viewDidLoad我可以看到它view已设置.About.xib在Interface Builder中查看时,我也可以看到这一点.

然而,一旦视图实际上第一次使用([self.navigationController pushViewController:viewController animated:YES]根据我的应用程序的逻辑调用)我收到此错误:

*由于未捕获的异常'NSInternalInconsistencyException'终止应用程序,原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了"关于"笔尖,但未设置视图插座.

这也是触发的调用viewDidLoad.因此,显然在通话期间,view首先是非零(应该是),后来显然再次变为零.

如果我po [viewController view]在调用之前立即键入调试器,我会收到此错误(可能只是另一个相同症状的表示):

错误:执行被中断,原因:内部ObjC异常断点(-3)..进程已返回到表达式求值之前的状态.

如何在不遇到这些错误的情况下将视图控制器与现有导航栏一起加载和使用?

更新如果我从故事板(不一定是我的主要故事板)而不是从XIB文件加载视图控制器,问题显然会消失.

bundle uiviewcontroller iboutlet ios

6
推荐指数
1
解决办法
3034
查看次数

IBOutlet最佳实践

我想知道哪个地方最适合从故事板放置IBOutlets:

a)在头文件(.h)中

b)在.m文件中创建的类扩展中

谢谢

问候

objective-c iboutlet ios uistoryboard

6
推荐指数
3
解决办法
1079
查看次数

iOS - IBOutlet 的命名约定

我确实进行了搜索,发现了很多约定,但没有一个谈论 IBOutlet。

我应该使用以下哪一项?

@IBOutlet weak var price: UITextField!
@IBOutlet weak var priceTextField: UITextField!
@IBOutlet weak var textFieldPrice: UITextField!
@IBOutlet weak var tfPrice: UITextField!
Run Code Online (Sandbox Code Playgroud)

iboutlet ios swift

6
推荐指数
1
解决办法
2172
查看次数

Nib IBOutlet导致应用程序崩溃

真的需要你的帮助!我已经完成了解决这个问题的所有可能的帖子,但似乎没有任何效果.

所以我使用.xib文件在ProfileFoldingCellView.swift中创建一个子视图,它完全有效,直到我尝试在同一个类中添加一个IBOutlet.这是代码:

import Foundation
import UIKit

class ProfileFoldingCellView: UIView {

    @IBOutlet var mainLabel: UILabel!
    public var cellIndex: Int = 0

    init(index: Int) {
        super.init(frame: CGRect(x: 0, y: 0, width: 0, height: 0))

        cellIndex = index
        print("Index: \(cellIndex)")

        setupContentView()
    }

    func setupContentView() {
        let contentView = UINib(nibName: "ProfileFoldingCellView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
        contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

        addSubview(contentView)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupContentView()
    }

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,标签IBOutlet的创建没有任何问题,并且没有其他过时或未使用的插件漫游.

标签插座 http://imgur.com/a/jb9CA

我还确保将ProfileFoldingCellView.swift设置为文件所有者的类.

一切都运行良好,直到我连接插座!然后我收到这个错误:

错误 http://imgur.com/a/6hHPG

相信我,我已经尝试了一切.我可能已经重新创建了一百万次,没有任何工作.任何帮助将不胜感激!

nib iboutlet ios swift swift3

6
推荐指数
2
解决办法
2252
查看次数

xcode 12 中 GADUnifiedNativeAdView 中缺少 IBOutlets

我一直在尝试在我的 iOS 应用中实施原生 Google adMob 广告。这是我正在关注的教程:

https://developers.google.com/admob/ios/native/advanced

我成功安装了 pod 'Google-Mobile-Ads-SDK'。然后教程说给 UIView(在故事板或 xib 文件中)类 GADUnifiedNativeAdView,然后添加子视图并将它们链接到 GADUnifiedNativeAdView 提供的 IBOutlets。但是,我无法看到 IBOutlets。

向情节提要中的 UIView 添加了类 GADUnifiedNativeAdView

缺少IBOutlets

xcode native admob iboutlet ios

6
推荐指数
0
解决办法
641
查看次数