在我继承的代码中,我看到了以下内容:
@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属性实际上是定义属性的更好方法吗?
问题
IBOutlet在我有机会使用之前就已发布.
我想要的是
我想从我的app委托访问导航控制器,以便我可以重新加载表视图.
我的设置
我有:
我正在使用ARC,Xcode 4.3.2和iOS5.1
我试过的
码
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) 如何访问IBOutlets已在另一个类中创建的?举例来说,如果我有一个IBOutlet在Class A我怎么可以访问Class B?如果我无法IBOutlets从其他课程访问什么是解决方法?
我有几个 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) 我在nib文件中有两个UIViews,我使用IBOutlet和weak关键字将它们设置为我的视图控制器的属性.
但是,当我使用self.view1我想用来指向笔尖中的视图时,它第一次起作用.但是当我以后使用它时,这两个属性就变成了nil.
使用该strong属性将解决问题.但我总是使用weak该IBOutlet物业.为什么在这种情况下它变成零?
我想知道,如果可以通过UIViewControllerswift 循环遍历所有出口.
具体来说,我想检查用户是否填写了每个文本字段.
我是 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) 这是我的目标:当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) 这debug view hierarchy是查看构成 的不同层的好方法UI,但据我所知,无法查看对象具有哪些出口引用名称。它们简单地称为它们是什么类型的对象。例如,按钮仅被称为而UIButton不是插座的名称。是的,我们可以看到它所viewController在的位置,但这并不容易,而且追踪某些物体仍然非常困难。
那么,有没有办法查看对象的引用出口被称为什么?
iboutlet ×10
ios ×4
xcode ×4
swift ×3
cocoa-touch ×2
macos ×2
objective-c ×2
properties ×2
class ×1
classname ×1
debugging ×1
subview ×1
subviews ×1
uibutton ×1
view ×1