Я не сохраняю interface
s - самое важное в языке: он чаще всего используется для наследования класса. Но в любом случае они важны! Например (это Java
код, но он может просто адаптироваться к C#
или многим другим языкам):
interface Convertable<T> {
T convert();
}
public class NumerableText implements Convertable<Integer> {
private String text = "";
public NumerableText() { }
public NumerableText(String text) {
this.text = text;
}
public String getText() {
return this.text;
}
public void setText(String text) {
this.text = text;
}
public Integer convert() {
return this.text.hashCode();
}
}
public class NumerableTextArray implements Convertable<Integer> {
private String[] textArray = "";
public NumerableTextArray() { }
public NumerableTextArray(String[] textArray) {
this.textArray = textArray;
}
public String[] getTextArray() {
return this.textArray;
}
public void setTextArray(String[] text) {
this.textArray = textArray;
}
public Integer convert() {
Integer value = 0;
for (String text : textArray)
value += text.hashCode();
return value;
}
}
public class Foo {
public static void main() {
Convertable<Integer> num1 = new NumerableText("hello");
Convertable<Integer> num2 = new NumerableTextArray(new String[] { "test n°1", "test n°2" });
System.out.println(String.valueOf(num1.convert()));
System.out.println(String.valueOf(num2.convert()));
//Here are you two numbers generated from two classes of different type, but both with the method convert(), which allows you to get that number.
}
}
Добавьте код в свой класс ViewController2.swift.
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesBackButton = true;
}
Он скроет вашу кнопку назад.
На сегодняшний день невозможно отключить кнопку «Назад», используя свойство enabled
. Свойство backBarButtonItem
будет nil
, если вы не создадите пользовательский элемент, и даже тогда он будет игнорировать свойство enabled
. Есть пара (неудовлетворительных) способов обойти это.
Это то, что Apple хочет, чтобы вы делали это, игнорируя свойство enabled
. Это также просто
navigationItem.hidesBackButton = true
и должно быть предпочтительным подходом, если у вас нет веских причин.
Вы можете отключить взаимодействие с пользователем во всей навигационной панели и оттенок его, чтобы сделать обратную кнопку недоступной.
navigationController?.navigationBar.userInteractionEnabled = false
navigationController?.navigationBar.tintColor = UIColor.lightGrayColor()
Это, к сожалению, влияет на другие элементы на панели навигации, так что это может быть не вариант, если например, у вас есть другая кнопка с правой кнопкой.
leftBarButtonItem
не игнорирует свойство enabled
, поэтому вы может создать пользовательский элемент и вызвать поп вручную, когда он будет активирован.
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(ThisClass.backButtonTapped))
...
navigationItem.leftBarButtonItem?.enabled = false
func backButtonTapped() {
self.navigationController?.popViewController(animated: true)
}
Это, однако, не будет иметь стиль кнопки задней панели с ведущим треугольным индикатором.
Если вы хотите скрыть его, UInavigationItem
имеет свойство hidesBackButton
.