标签: iboutlet

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
查看次数

如何从Objective-C中的其他类访问IBOutlet?

如何访问IBOutlets已在另一个类中创建的?举例来说,如果我有一个IBOutletClass A我怎么可以访问Class B?如果我无法IBOutlets从其他课程访问什么是解决方法?

macos xcode properties objective-c iboutlet

5
推荐指数
1
解决办法
4976
查看次数

iOS - IB视图模式

我只是很好奇,但IB视图模式甚至用于什么?

在此输入图像描述

我改变了很多次没有效果?有人可以解释一下.

xcode iboutlet ios

5
推荐指数
1
解决办法
1431
查看次数

iOS - 访问 IBOutlet 的名称

我有几个 UIView 的 IBOutlet;我的父视图中的几个子视图。我试图循环所有 UIView 子视图。我想循环所有 IBOutlet 名称以“view_”开头的子视图

有人可以帮我解决这个问题吗?问题是我真的想访问 IBOutlet 的名称。

这是我的澄清代码:

@property (weak, nonatomic) IBOutlet UIView *view_player1;
@property (weak, nonatomic) IBOutlet UIView *view_player2;
@property (weak, nonatomic) IBOutlet UIView *view_referee1;

- (void)listSubviewsOfView:(UIView *)view {
    // Get the subviews of the view
    NSArray *subviews = [view subviews];

    // Return if there are no subviews
    if ([subviews count] == 0) return;

    for (UIView *subview in subviews) {
        NSLog(@"my subview name is: %@", subview.class);  //?? is only giving my the type eg UIView, …
Run Code Online (Sandbox Code Playgroud)

view classname subview iboutlet subviews

5
推荐指数
0
解决办法
235
查看次数

弱IBOutlet UIView属性将变为零

我在nib文件中有两个UIViews,我使用IBOutletweak关键字将它们设置为我的视图控制器的属性.

但是,当我使用self.view1我想用来指向笔尖中的视图时,它第一次起作用.但是当我以后使用它时,这两个属性就变成了nil.

使用该strong属性将解决问题.但我总是使用weakIBOutlet物业.为什么在这种情况下它变成零?

properties weak-references iboutlet ios

5
推荐指数
1
解决办法
2440
查看次数

如何使用Swift循环UIViewController的Outlets

我想知道,如果可以通过UIViewControllerswift 循环遍历所有出口.

具体来说,我想检查用户是否填写了每个文本字段.

uiviewcontroller iboutlet swift

5
推荐指数
1
解决办法
3690
查看次数

从 Swift 中的另一个类访问 IBOutlet

我是 Swift 和 Mac App 的新手。所以我今天正在写一个 Mac 应用程序,在搜索了很多之后,我仍然困惑如何从另一个类访问 IBOutlet。

我正在使用 StoryBoard path mirror,我的 ViewController 中有两个 NSTextField 。我Path.swift为第一个 NSTextField创建了一个自定义类,path以了解输入的文本何时path发生更改。

class Path: NSTextField, NSTextFieldDelegate 
{
override func drawRect(dirtyRect: NSRect)
{
    super.drawRect(dirtyRect)
    // Drawing code here.
    self.delegate = self
}
var current = ""

override func controlTextDidChange(obj: NSNotification)
{
    current = self.stringValue
    println("Current is \(current)")
} 
}
Run Code Online (Sandbox Code Playgroud)

ViewController.swift 中定义了两个出口

class ViewController: NSViewController
{

    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the …
Run Code Online (Sandbox Code Playgroud)

macos class nsviewcontroller iboutlet swift

5
推荐指数
0
解决办法
633
查看次数

更改另一个类的按钮的状态

这是我的目标:当Start点击按钮时,我希望Send启用按钮。以下是我的视图控制器加载后的样子:

在此输入图像描述

如您所见,Send按钮被禁用,这是所期望的。我通过在我的中编写以下代码来禁用它TaskListTableViewCell.swift(为了简洁起见,我删除了一些其他不相关的代码):

class TaskListTableViewCell: UITableViewCell {

    @IBOutlet weak var sendButton: UIButton!

    override func awakeFromNib() {
        super.awakeFromNib()

        sendButton.enabled = false
    }
}
Run Code Online (Sandbox Code Playgroud)

为了以防万一它可以帮助您看得更清楚,这就是视图控制器在以下位置的样子Main.storyboard

在此输入图像描述

在我的中TaskListViewController,我有以下代码:

@IBAction func startButtonTapped(sender: AnyObject) {
   //write the code here to change sendButton.enabled = true
}
Run Code Online (Sandbox Code Playgroud)

问题是,我似乎找不到改变sendButton.enabled = true. 我试过了:

@IBAction func startButtonTapped(sender: AnyObject) {
    let taskListViewController = TaskListViewController()
    taskListTableViewCell.sendButton.enabled = true
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

class TaskListTableViewCell: UITableViewCell {

    @IBOutlet weak var sendButton: UIButton!

    func …
Run Code Online (Sandbox Code Playgroud)

xcode uibutton iboutlet ios swift

5
推荐指数
1
解决办法
1579
查看次数

有没有办法在调试视图层次结构中查看对象名称?

debug view hierarchy是查看构成 的不同层的好方法UI,但据我所知,无法查看对象具有哪些出口引用名称。它们简单地称为它们是什么类型的对象。例如,按钮仅被称为而UIButton不是插座的名称。是的,我们可以看到它所viewController在的位置,但这并不容易,而且追踪某些物体仍然非常困难。

那么,有没有办法查看对象的引用出口被称为什么?

debugging xcode iboutlet

5
推荐指数
2
解决办法
2414
查看次数